codificar / laravel-database-queue
dev-master
2017-06-16 13:37 UTC
Requires
- php: >=5.3.0
- illuminate/console: ~4.0
- illuminate/support: ~4.0
- symfony/process: ~2.3
This package is auto-updated.
Last update: 2024-08-26 11:02:59 UTC
README
将函数/闭包推送到数据库队列。
这是一个真正的队列驱动程序,类似于beanstalkd或redis。您需要一个守护进程,如supervisor或类似程序来监听您的队列。
安装
将包添加到composer.json的require部分,并运行composer update
"codificar/laravel-database-queue": ">0.5"
将服务提供者添加到config/app.php中的providers数组
'codificar\Queue\DatabaseServiceProvider'
建议发布迁移,以便它们被复制到您的常规迁移中
$ php artisan migrate:publish codificar/laravel-database-queue
然后运行迁移
$ php artisan migrate
建议在此刻创建failed_jobs
表,使用以下内容
$ php artisan queue:failed-table
现在您应该能够使用config/queue.php中的数据库驱动程序
'default' => 'database',
'connections' => array(
...
'database' => array(
'driver' => 'database',
'queue' => 'queue-name', // optional, can be null or any string
'lock_type' => 0, // optional, can be 0, 1 or 2
),
...
}
它与beanstalkd或redis队列监听器的工作方式相同。
监听新工作
$ php artisan queue:listen
并发由queues
表中的status
列管理,因此您可以并行化queue:listen
。
状态变化的原子性由数据库事务保证,如果您遇到竞态条件问题,可以将选项lock_type
设置为
- 'lock_type' => 1 // 队列系统将使用sharedLock
- 'lock_type' => 2 // 队列系统将使用lockForUpdate
有关更多信息,请参阅https://laravel.net.cn/docs/4.2/queries#pessimistic-locking
Laravel 队列系统
更多信息请参阅 https://laravel.net.cn/docs/queues