首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我不能用拉拉派延迟的工作

我不能用拉拉派延迟的工作
EN

Stack Overflow用户
提问于 2022-04-25 07:55:06
回答 2查看 1.2K关注 0票数 0

下面的代码不起作用。我认为我做的一切都是正确的,但不知怎么的,我没有工作。

..。MyJob::dispatch($job)->onQueue('processing')->delay(Carbon::now()->addSeconds(30));...

MyJob.php

代码语言:javascript
运行
复制
<?php

namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;

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

    public function __construct($job)
    {
        // I described a logging code here and yes, there was change, but then...
    }

    public function handle()
    {
        // I described a logging code here, but there wasn't change
    }
}

问题是dispatchNow()确实工作,但是延迟的分派没有工作。

我也正确地设置了.env (我猜)

.env文件..。

代码语言:javascript
运行
复制
QUEUE_CONNECTION=database

..。

config/Quee.php ..。

代码语言:javascript
运行
复制
'default' => env('QUEUE_CONNECTION', 'sync'),

..。

请帮帮我。任何建议都会很好。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-04-25 19:48:32

诊断步骤;

  1. 打开修补程序并运行config('queue')并检查队列设置是否与预期的

相同

没有运行队列工作者的

  1. ,将作业分派到队列中。打开数据库工具,检查作业表是否包含一条新记录.

  1. 使用php artisan queue:work运行队列工作器,延迟后,作业应该运行。

  1. 检查作业是否已从作业表中删除,并且failed_jobs表中没有任何内容.
票数 0
EN

Stack Overflow用户

发布于 2022-07-19 14:24:06

您可以按照上面的建议尝试清除缓存。此外,还尝试重新启动队列。

代码语言:javascript
运行
复制
php artisan queue:restart

至于队列:工作问题。是的,如果您希望队列永久运行,那么使用监督器是一个很好的选择。示例配置如下所示。

代码语言:javascript
运行
复制
[program:my-laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/project/artisan queue:work --queue=QUEUE_NAME--sleep=1 --tries=1
autostart=true
autorestart=true
numprocs=1
redirect_stderr=true
stdout_logfile=/path/to/log/file.log
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71996184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档