Мне нужно отправить несколько заданий в очередь Laravel для обработки некоторых загруженных CSV-файлов. Эти задания могут быть завершены за одну секунду, если файлы маленькие, или несколько секунд, если они большие, или, возможно, до минуты, если файлы CSV очень большие. И я не могу заранее сказать, насколько большими будут файлы.
Когда пользователь переходит на страницу «результаты», мне нужно отобразить результаты, но только если очередь завершила задания. Если очередь все еще обрабатывается, мне нужно отобразить сообщение «повторите попытку позже».
Итак, есть ли способ проверить с контроллера, закончилась ли очередь?
В настоящее время я использую Laravel 5.1, но с удовольствием обновлюсь, если это поможет. В настоящее время я использую драйвер очереди базы данных. В идеале я хотел бы найти общий метод, который работает для всех драйверов очередей, но если единственный способ сделать это — проверить таблицу базы данных, то я думаю, что это то, что мне нужно сделать.
Спасибо!
report_name
иprocessed
, которые вы упомянули. Проблема, с которой я столкнулся сейчас, заключается в том, что могут быть отчеты с одинаковыми именами, поэтому у меня возникают проблемы с их различением в таблице, чтобы изменить столбецprocessed
. Что ты предлагаешь? - person Nancy   schedule 28.07.2020import_jobs
, а затем сохранить идентификатор этой новой записи и свериться с идентификатором вместоreport_name
. - person Brendan White   schedule 30.07.2020