В PHP существует два способа использования массива в виде стека (LIFO) и два способа использовать их в качестве очереди (FIFO). Можно реализовать стек с push и pop , но то же самое можно сделать с помощью unshift & shift . Аналогичным образом можно реализовать очередь с push & shift , но то же самое можно […]
У меня есть приложение на основе Laravel, которое интенсивно использует изображение. Пользователи могут загружать изображения на сервер, а изображения сохраняются на ведро Amazon s3 после изменения размера. Процесс здесь довольно медленный, и я читал в очередях и думаю, что они могут быть именно тем, что мне нужно, чтобы отчасти делегировать часть хранения на amazon. Единственное, […]
Я хотел бы заглянуть в первый элемент массива. Эта операция будет эквивалентна этому коду: function peek($list) { $item = array_shift($list); array_unshift($list, $item); return $item; } Этот код мне кажется очень тяжелым, и быстрый просмотр часто предоставляется библиотеками очереди и стека. У php есть уже построенная функция или более эффективный способ сделать это? Я искал php.net, […]
Я делаю скрипт с 2000 заданиями в день, используя cron (означает, что это серверная сторона и автоматически выполняет все задания). но задание требует одновременного запуска 10 (или заданных заданий) заданий. например, если вы видите IDM (менеджер загрузки через Интернет), есть функция очереди, она запускает несколько заданий за раз, и если они завершатся, то запускается другое. […]
Я работаю над веб-сайтом обработки изображений, вместо того чтобы иметь длительные задания, задерживать браузер пользователей. Я хочу, чтобы все команды быстро возвращались с идентификатором задания и выполняли фоновые задачи. Затем идентификатор можно было использовать для проверки состояния и результатов (т. Е. URL-адреса обработанного изображения). Я нашел много распределенных менеджеров очереди для ruby, java и python, […]
Как настроить функции очереди в PHP? Мне нужно что-то, что работает так же, как система add_action WordPress. Я хочу функцию enqueue, которая затем запускается, когда время правильное. редактировать Кажется, это работает отлично. У кого-нибудь есть советы по улучшению моего кода? $enqueued_actions = array(); /** * Enqueue an action to run at a later time. * […]
Ситуация Я использую Laravel Queues для обработки большого количества медиафайлов, ожидается, что отдельная работа займет минуты (давайте просто скажем до часа). Я использую Supervisor для запуска моей очереди, и я запускаю 20 процессов за раз. Мой конфигурационный файл супервизора выглядит так: [program:duplitron-worker] process_name=%(program_name)s_%(process_num)02d command=php /var/www/duplitron/artisan queue:listen database –timeout=0 –memory=500 –tries=1 autostart=true autorestart=true user=duplitron numprocs=20 redirect_stderr=true […]
Я хочу, чтобы данные, отправленные моими клиентами (через почту), были помещены в очередь, а скрипт php на моем сервере сначала проверяет, пуста ли очередь. Если очередь не пуста, то скрипт обрабатывает все данные в очереди один за другим. Как это сделать?