laravel - laravel queue not working from custom class
问题描述
Im use database for queue.
php artisan queue:work
not runned.
If I add to queue from App\Models\Mail
: ProcessMail::dispatch(['test' => 'test');
auto_increment value changed, but row does not exists in database, no errors in logs and no exception. If I try ProcessMail::dispatch(['test' => 'test');
in controller that's work fine: row creates to database.
This is code of ProcessMail:
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Log;
class ProcessMail implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
private $mailData;
/**
* Create a new job instance.
*
* @param [] $mailData
* @return void
*/
public function __construct($mailData)
{
$this->mailData = $mailData;
Log::info('job constructor');
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
Log::info('job handle');
}
}
Queue table structure:
CREATE TABLE `jobs` (
`id` bigint(20) UNSIGNED NOT NULL,
`queue` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`payload` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
`attempts` tinyint(3) UNSIGNED NOT NULL,
`reserved_at` int(10) UNSIGNED DEFAULT NULL,
`available_at` int(10) UNSIGNED NOT NULL,
`created_at` int(10) UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
How can I fix this problem?
解决方案
我发现了问题。我打电话ProcessMail::dispatch(['test' => 'test');
后DB::beginTransaction();
因为我调试 - 我运行DB::rollback();
所以从表中删除了创建的作业。这完全是我的错。也许有人会节省时间。
推荐阅读
- mysql - 如何对主键进行排序
- ktor - 如何在 Ktor 中使用自定义配置?
- docker - Docker-compose:用生产中的预构建映像替换基于“构建”的服务?
- swift - Coredata 的 CodeGen 'manual/none + create NSManagedObject subclass' 与 'category/extension' 之间的功能差异是什么
- cross-browser - 需要帮助了解 .MKV 和 .MP4 文件
- ibm-doors - 将 Object.Attr 传递给函数
- asp.net - 如何从同一网格视图中的按钮的单击事件中设置 GridView 中标签的文本值
- android - Android OREO,系统应用上的 TYPE_SYSTEM_ERROR
- javascript - Spotify api将曲目添加到播放列表
- c# - 相机未正确在 2 个游戏对象之间居中