Иногда laravel работа в очереди выполняется более 15 минут - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть задание, которое отправит запрос API в mt4, но иногда с первой попытки кажется, что задание продолжает обрабатываться и ждать 15 минут. Срок действия API истечет, если он превысит 40 секунд, поэтому я удивляюсь, почему иногда для повторной попытки выполнения задания требуется 15 минут.

см. Идентификатор задания 2290 и 2296

[2020-04-22 15:52:08][2284] Processing: Modules\Mt4\Jobs\CreateAccount
[2020-04-22 15:52:12][2284] Processed:  Modules\Mt4\Jobs\CreateAccount
[2020-04-22 15:52:12][2285] Processing: Modules\Mt4\Jobs\CreateAccount
[2020-04-22 15:52:15][2285] Processed:  Modules\Mt4\Jobs\CreateAccount
[2020-04-22 15:52:15][2286] Processing: Modules\Regisration\Emails\RegistrationSuccess
[2020-04-22 15:52:19][2286] Processed:  Modules\Regisration\Emails\RegistrationSuccess
[2020-04-22 15:59:55][2287] Processing: Modules\Mt4\Jobs\CreateAccount
[2020-04-22 15:59:58][2287] Processed:  Modules\Mt4\Jobs\CreateAccount
[2020-04-22 15:59:58][2288] Processing: Modules\Mt4\Jobs\CreateAccount
[2020-04-22 16:00:02][2288] Processed:  Modules\Mt4\Jobs\CreateAccount
[2020-04-22 16:00:02][2289] Processing: Modules\Regisration\Emails\RegistrationSuccess
[2020-04-22 16:00:05][2289] Processed:  Modules\Regisration\Emails\RegistrationSuccess
[2020-04-22 17:11:18][2290] Processing: Modules\Mt4\Jobs\CreateAccount
[2020-04-22 17:26:59][2290] Processing: Modules\Mt4\Jobs\CreateAccount
[2020-04-22 17:27:02][2290] Processed:  Modules\Mt4\Jobs\CreateAccount
[2020-04-22 17:27:02][2291] Processing: Modules\Mt4\Jobs\CreateAccount
[2020-04-22 17:27:05][2291] Processed:  Modules\Mt4\Jobs\CreateAccount
[2020-04-22 17:27:05][2292] Processing: Modules\Regisration\Emails\RegistrationSuccess
[2020-04-22 17:27:09][2292] Processed:  Modules\Regisration\Emails\RegistrationSuccess
[2020-04-23 04:46:36][2293] Processing: Modules\Mt4\Jobs\CreateAccount
[2020-04-23 04:46:41][2293] Processed:  Modules\Mt4\Jobs\CreateAccount
[2020-04-23 04:46:41][2294] Processing: Modules\Mt4\Jobs\CreateAccount
[2020-04-23 04:46:45][2294] Processed:  Modules\Mt4\Jobs\CreateAccount
[2020-04-23 04:46:45][2295] Processing: Modules\Regisration\Emails\RegistrationSuccess
[2020-04-23 04:46:48][2295] Processed:  Modules\Regisration\Emails\RegistrationSuccess
[2020-04-23 06:05:55][2296] Processing: Modules\Mt4\Jobs\CreateAccount
[2020-04-23 06:21:36][2296] Processing: Modules\Mt4\Jobs\CreateAccount
[2020-04-23 06:21:40][2296] Processed:  Modules\Mt4\Jobs\CreateAccount

Вот моя конфигурация руководителя:

[program:test-project]
command=php /var/www/html/test-project/current/artisan queue:work --tries=1 
autostart=true
autorestart=true
user=git
numprocs=1
redirect_stderr=true
stdout_logfile=/tmp/test-project.log
stopwaitsecs=3600

Вот мой класс работы

<?php

namespace Modules\Mt4\Jobs;
...
class CreateAccount implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    public $tries = 5;

    ...

    public function handle()
    {
        ....

        $createAccountApi = new UserRecordNew($mt4User, $this->tradeType, true, $this->attempts());
        $results          = $createAccountApi->execute();

        if (!isset($results->result)) {
            throw new \Exception("Error Processing Request. " . json_encode($results));
        }

        if (!$results->data && !$results->result) {
           throw new \Exception("Error Processing Request. " . json_encode($results));
        }

    }
}
...