У меня есть веб-приложение, написанное с использованием Laravel 5.1, которое запускает скрипт, когда пользователь запрашивает определенную страницу или нажимает кнопку. Это должно активировать скрипт в фоновом режиме. Я пробовал это с помощью заданий и очередей.
Вот мой кусок кода: myjob.php
class myjob extends Job implements SelfHandling, ShouldQueue {
use InteractsWithQueue, SerializesModels;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
//
set_time_limit(0);
$this->writeJobLogs('Error', 'Start Execution');
//Job Processing Code
$this->writeJobLogs('Error', 'End Execution');
}
}
Контроллер.php
class ManageController extends Controller {
public function testJob(){
$this->dispatch(new myjob());
}
}
Ожидается, что выполнение кода обработки задания займет не менее 10 минут. Теперь, когда я запускаю код, он выдает ошибку, после которой приведено ниже:
[Symfony\Component\Process\Exception\ProcessTimedOutException] Процесс "C:\wamp\bin\php\php5.5.12\php.exe" "artisan" очередь:work --queue="default" --delay=0 --memory=128 --sleep=3 --tries=0 --env="local"" превышено время ожидания 60 секунд.
Ожидается, что код обработки заданий будет выполняться несколько раз одновременно в соответствии с запросами пользователя. Поэтому у меня есть сомнения относительно того, будут ли очереди работать нормально или у меня есть другой лучший выбор. Если это так, пожалуйста, предложите.