интересует больше бэкенд сторона
например:
1) конвертация видео в другой формат
2) сжатие большого изображения
3) импорт товаров в бд с внешнего api
4) экспорт товаров из бд в excel файл
предполагаю алгоритм зависит от вида задачи..
случай 3: если это импорт..то нужно вероятно подсчитать количество строк/рядов в файле,например там около 300 строк,
в бд добавляем по 100 строк
количество итераций = 300/100=3
всего 3 итерации: 1-33%, 2-66%, 3-100%
случай 2 "сжатие большого изображения"..
как узнать здесь количество итераций?
или в момент запуска воркера,увеличивать счетчик прогресса каждую секунду и
записывать/обнволять в бд по id_task значение в поле "progress" , а когда закончит работу обновить значение на 100%
общий алгоритм возможно должен быть похож на это:
function progress(int $total)
{
echo 'Starting task' . PHP_EOL;
for ($i = 1; $i <= $total; $i++) {
$progress = 100 * $i / $total;
echo $i . '-' . $progress . '%' . PHP_EOL;
// some heavy task
sleep(1);
}
$progress = 100;
echo '$progress: ' . $progress . '%' . PHP_EOL;
echo 'Task completed' . PHP_EOL;
}
progress(10);