Пробуждатель очереди Laravel не работает на рабочем сервере

#php #laravel #redis #queue #laravel-artisan

Вопрос:

Я использую Laravel v7.0. Я внедрил задания Laravel для отправки OTP. php artisan queue:work отлично работает в системе разработки. Но когда я переместил свой код на рабочий сервер, он не работал. Я использую redis в качестве подключения к очереди. Когда я отправлял запросы OTP, задания были добавлены в базу данных redis, но php artisan queue:work не работали. Я также попробовал supervisor запустить рабочего. И то, и другое не работает. Я также очистил конфигурацию кэша на реальном сервере

Моя функция контроллера

 private function sendOtp($phoneNumber)
    {
        try {
            return $this->dispatch(new OTPSend($phoneNumber));
        } catch (Exception $e) {
            throw $e;
        }
    }
 

Задание на отправку

 class OTPSend implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    /**
     * @var string
     */
    public $phoneNumber;

    /**
     * Create a new job instance.
     *
     * @param string $phoneNumber
     */
    public function __construct($phoneNumber)
    {
        $this->phoneNumber = $phoneNumber;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        try {
            $twilio = new Client(config('app.twilio.SID'), config('app.twilio.TOKEN'));
            $twilio->verify->v2->services(config('app.twilio.TWILIO_VERIFICATION_SID'))
                ->verifications
                ->create(' 91' . $this->phoneNumber, "sms");
        } catch (Exception $e) {
            $this->failed($e);
        }
    }

    public function failed($exception = null)
    {
        error_log($exception->getMessage());
        // Handle exception case
        
    }
}
 

.env

 BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=redis
SESSION_DRIVER=file
SESSION_LIFETIME=120

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=******
REDIS_PORT=6379
 

config/queue

     'default' => env('QUEUE_CONNECTION', 'sync'),
'connections' => [

        'sync' => [
            'driver' => 'sync',
        ],

        'database' => [
            'driver' => 'database',
            'table' => 'jobs',
            'queue' => 'default',
            'retry_after' => 90,
        ],

        'beanstalkd' => [
            'driver' => 'beanstalkd',
            'host' => 'localhost',
            'queue' => 'default',
            'retry_after' => 90,
            'block_for' => 0,
        ],

        'sqs' => [
            'driver' => 'sqs',
            'key' => env('AWS_ACCESS_KEY_ID'),
            'secret' => env('AWS_SECRET_ACCESS_KEY'),
            'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
            'queue' => env('SQS_QUEUE', 'your-queue-name'),
            'suffix' => env('SQS_SUFFIX'),
            'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
        ],

        'redis' => [
            'driver' => 'redis',
            'connection' => 'default',
            'queue' => env('REDIS_QUEUE', 'default'),
            'retry_after' => 90,
            'block_for' => 5,
            'after_commit' => true,
        ],

    ],
 

Задания после вызова функции контроллера в redis

 LRANGE app_database_queues:default 0 100
1) "{"uuid":"8521c394-aa69-4ca5-a4ed-04119e46e898","displayName":"App\\Jobs\\OTPSend","job":"Illuminate\\Queue\\CallQueuedHandler@call","maxTries":null,"maxExceptions":null,"delay":null,"timeout":null,"timeoutAt":null,"data":{"commandName":"App\\Jobs\\OTPSend","command":"O:16:\"App\\Jobs\\OTPSend\":9:{s:11:\"phoneNumber\";s:10:\"88888888888\";s:3:\"job\";N;s:10:\"connection\";N;s:5:\"queue\";N;s:15:\"chainConnection\";N;s:10:\"chainQueue\";N;s:5:\"delay\";N;s:10:\"middleware\";a:0:{}s:7:\"chained\";a:0:{}}"},"id":"SuXRbRR01sVA9caqlcFfR2jqGU74voxN","attempts":0}"
2) "{"uuid":"d7fbc815-0f15-4e6b-9a6a-28b890b2eb07","displayName":"App\\Jobs\\OTPSend","job":"Illuminate\\Queue\\CallQueuedHandler@call","maxTries":null,"maxExceptions":null,"delay":null,"timeout":null,"timeoutAt":null,"data":{"commandName":"App\\Jobs\\OTPSend","command":"O:16:\"App\\Jobs\\OTPSend\":9:{s:11:\"phoneNumber\";s:10:\"8888888888\";s:3:\"job\";N;s:10:\"connection\";N;s:5:\"queue\";N;s:15:\"chainConnection\";N;s:10:\"chainQueue\";N;s:5:\"delay\";N;s:10:\"middleware\";a:0:{}s:7:\"chained\";a:0:{}}"},"id":"uUqU5S6JTl1OOarLWsXLOCUabBTawPfT","attempts":0}"