无法两次跟踪流明作业调度
Posted
技术标签:
【中文标题】无法两次跟踪流明作业调度【英文标题】:Cannot track lumen job dispatch twice 【发布时间】:2021-03-08 06:05:28 【问题描述】:我正在使用 Laravel lumen 8.x 来创建 REST API。 在我的项目中,我为那些 API 调用第三方 API,我创建了调用 API 的作业。在我的日志中,我得到了一次作业执行,但在第三方 API 上,他们说我多次调用一个 API。 我已经使用没有任何框架的单个 php 文件对此进行了测试。在那个 API 调用上,他们说它很好,因为它被调用了一次。 我认为我的 Lumen 项目或队列配置有问题。任何人都可以帮忙吗? 运行命令:
php artisan queue:work --timeout=600 --sleep=5 --tries=1 --memory=1024
这是我的 queue.php 配置
return [
'default' => env('QUEUE_CONNECTION', 'redis'),
'connections' => [
'sync' => [
'driver' => 'sync',
],
'database' => [
'driver' => 'database',
'table' => 'jobs',
'queue' => 'default',
'retry_after' => null,
],
'redis' => [
'driver' => 'redis',
'connection' => 'default',
// 'queue' => env('REDIS_QUEUE', 'default'),
'queue' =>'default',
'retry_after' => null,
'block_for' => null,
],
],
'failed' => [
'database' => env('DB_CONNECTION', 'mysql'),
'table' => 'failed_jobs',
],
];
【问题讨论】:
【参考方案1】:我能想到的唯一解释是,您的工作需要的时间比预期的要长,因此它会超时,然后再次重试。 您可能想查看 laravel 文档中作业的超时配置
https://laravel.com/docs/8.x/queues#timeout
您还可以指定作业在失败之前可能尝试多少次,我猜默认为 3 次
https://laravel.com/docs/8.x/queues#max-job-attempts-and-timeout
【讨论】:
php artisan queue:work --timeout=600 --sleep=5 --tries=1 --memory=1024 我已经在使用超时和重试限制为 1以上是关于无法两次跟踪流明作业调度的主要内容,如果未能解决你的问题,请参考以下文章