Skip to content

Commit 8dad81f

Browse files
authored
Update and rename ThinkPHP5中的队列.md to README.md
1 parent 8401dd0 commit 8dad81f

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

thinkphp-queue/ThinkPHP5中的队列.md renamed to thinkphp-queue/README.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,7 @@ php think queue:work --queue helloJobQueue
392392
- 任务数量较多
393393
- 性能要求较高
394394
- 任务的执行时间较短
395-
- **消费者类中不存在死循环,或者 sleep() 等容易导致bug的逻辑**
395+
 - 消费者类中不存在死循环,sleep() ,exit() ,die() 等容易导致bug的逻辑
396396

397397
listen命令的适用场景是:
398398

@@ -697,10 +697,9 @@ class MyQueueFailedLogger {
697697
];
698698
var_export(json_encode($failedJobLog,true));
699699

700-
// $jobObject->release(); //重发任务
701-
702-
$jobObject->delete(); //删除任务
703-
$jobObject->failed(); //通知消费者类任务执行失败
700+
// $jobObject->release(); //重发任务
701+
//$jobObject->delete(); //删除任务
702+
//$jobObject->failed(); //通知消费者类任务执行失败
704703

705704
return self::should_run_hook_callback;
706705
}
@@ -724,7 +723,8 @@ class MyQueueFailedLogger {
724723
* @param $jobData string|array|... //发布任务时传递的 jobData 数据
725724
*/
726725
public function failed($jobData){
727-
// send_mail_to_somebody() ;
726+
send_mail_to_somebody() ;
727+
728728
print("Warning: Job failed after max retries. job data is :".var_export($data,true)."\n";
729729
}
730730
```
@@ -763,12 +763,12 @@ public function failed($jobData){
763763
```php
764764
[
765765
'job' => 'application\\index\\job\\Hello' , // jobHandlerClassName,消费者类的类名
766-
'data' => [ // 生产者传入的业务数据
766+
'data' => [ // 生产者传入的业务数据
767767
'time' => '2017-02-18 16:20:10',
768768
'data' => 'I have 648 apples'
769769
],
770-
'id' => '77IasdasadIasdadadadKL8t', // 一个随机的32位字符串
771-
'attempts' => 2 // 任务的已尝试次数
770+
'id' => '77IasdasadIasdadadadKL8t', // 一个随机的32位字符串
771+
'attempts' => 2 // 任务的已尝试次数
772772
]
773773
```
774774

@@ -863,7 +863,7 @@ public function failed($jobData){
863863

864864
- **3.6.2** 使用了 `queue:work --daemon` ,但更新代码后没有使用 `queue:restart` 重启 work 进程, 使得 work 进程中的代码与最新的代码不同,出现各种问题。
865865

866-
- **3.6.3** 使用了 `queue:work --daemon` ,但是消费者类的 fire() 方法中存在死循环,或者 `sleep(n)` 这样的逻辑,导致消息队列被堵塞。
866+
-   **3.6.3** 使用了 `queue:work --daemon` ,但是消费者类的 fire() 方法中存在死循环, `sleep(n)` 等逻辑,导致消息队列被堵塞;或者使用了 `exit()` , `die()` 这样的逻辑,导致work进程直接终止
867867

868868
- **3.6.4** 配置的 expire 为 `null` ,这时如果采用的是 Redis 驱动且使用了延迟功能,如 `later(n)``release(n)` 方法或者 `--delay` 参数不为0 , 那么将导致被延迟的任务永远无法处理。(这个可能属于框架的[Bug](https://github.com/top-think/think-queue/issues/12))
869869

@@ -873,7 +873,7 @@ public function failed($jobData){
873873

874874
- **3.6.7** 使用 `Queue::push($jobHandlerClassName , $jobData, $jobQueueName );` 推送任务时,`$jobData` 中包含未序列化的对象。这时,在消费者端拿到的 `$jobData ` 中拿到的是该对象的public 属性的键值对数组。因此,需要在推送前手动序列化对象,在消费者端再手动反序列化还原为对象。
875875

876-
876+
877877

878878
### 四 拓展
879879

0 commit comments

Comments
 (0)