Мы планируем перейти с delayed_job
на resque
для нашего сайта, и одно из предостережений, которые я вижу повсюду, заключается в том, что, хотя delayed_job
использовал yaml для сериализации, resque
использует json, и из-за этого к хеш-ключам и т. д., которые являются символами, необходимо обращаться как к строкам, поскольку символы не могут быть сохранены в json (например, источник).
Мой вопрос: если это правда, была ли причина выбирать json вместо yaml? Или, скорее, есть ли какие-то преимущества, которые предлагает json для этой ситуации?
1 ответ
Есть некоторая поддержка JSON с использованием хэшей redis, но я никогда не использовал ее и сомневаюсь, что это будет полезно в этом случае.
Resque, вероятно, использует JSON вместо YAML, потому что он более широкий. Я также нашел комментарий по этому поводу.
@defunkt
YAML не лучше сохраняет объекты Ruby - со сложными объектами он может сериализовать объект, который не может быть десериализован позже. Это неприемлемо.
Если вам нужны символьные ключи, я считаю, что у YAJL есть опция, которую мы могли бы использовать для сохранения ключей. Также вы можете тривиально вызвать symbolize_keys для объекта, если у вас есть ActiveSupport.
https://github.com/resque/resque/issues/26
Похожие вопросы
Новые вопросы
ruby
Ruby - это многоплатформенный динамический объектно-ориентированный интерпретируемый язык с открытым исходным кодом. Тег [ruby] предназначен для вопросов, связанных с языком Ruby, включая его синтаксис и его библиотеки. Вопросы Ruby on Rails должны быть помечены [ruby-on-rails].