Если я так хорошо понимаю, как delayed job, так что у меня есть метод, и я могу назвать его заданием с задержкой. В этом случае будет помещена эта запись относительно этой «работы» в таблицу delayed_jobs и в то же время будет автоматически запускаться демон, который будет обрабатывать одну запись другой в этой таблице.Как отслеживать отложенные задания в Rails?
Структура таблицы выглядит следующим образом:
create_table "delayed_jobs", :force => true do |t|
t.integer "priority", :default => 0, :null => false
t.integer "attempts", :default => 0, :null => false
t.text "handler", :null => false
t.text "last_error"
t.datetime "run_at"
t.datetime "locked_at"
t.datetime "failed_at"
t.string "locked_by"
t.string "queue"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
Теперь, вот задача, которую я хотел бы, чтобы использовать замедленные рабочие места алгоритм. Пользователи могут загружать файлы на моем сайте. Эти файлы могут быть огромными - например, 400 Мбайт, и я хочу использовать задержанную работу для этой цели.
Итак, пользователь выбирает файл, который он хочет загрузить, запись будет помещена в таблицу delayed_jobs
, и теперь я хотел бы сказать этому пользователю, что его файл обработан. Но когда вы сделаете загрузку нескольких пользователей одновременно, скажем, 5, как я могу узнать, что загрузка пользователя «A» все еще продолжается? Как добавить собственный столбец в delayed_jobs и как написать там некоторую информацию?
Потому что похоже, что все, что связано с Delayed Job, работает на фоне.
Благодаря