想请教一下 CustomProcess 的使用
Opened this issue · 14 comments
blankzas commented
想了解一下CustomProcess的调用
Joyboo commented
就是启动一个自定义进程,监听一个redis队列,不断的 取出 消费里面的数据
Joyboo commented
主进程启动的时候传入consumerJobs参数就可以了,具体参考在 EasySwooleEvent.php 第35行
blankzas commented
这个有看到注册 但是没看到怎样投递到指定的Process 想问一下参考代码例子
Joyboo commented
自定义进程会和Worker进程一起启动(其实也算Worker进程的一种),启动后 运行 BaseTrait.php 的run方法,也就是基于Timer定时器来实现的
blankzas commented
比如我添加了一个处理Excel任务 我该怎样触发这个任务呢
blankzas commented
Joyboo commented
示例:加入同级的config.php就可以,往redis队列里写入数据即可测试
[
'name' => 'ExportData', // 进程名
'class' => \App\CustomProcess\ExportData::class, // 运行类
'psnum' => 1, // 进程数, 默认1个
'queue' => 'xxxx 队列名', // 监听的redis队列名
'tick' => 1000, // 多久运行一次,单位毫秒, 默认1000毫秒
'limit' => 200, // 单次出队列的阈值, 默认200
'coroutine' => false // 是否为每条数据开启协程
'pool' => 'default' // redis连接池名称
],
Joyboo commented
注意消费进程是一直存在不断监听队列的,如果是定时运行的任务,你应该使用Crontab
blankzas commented
blankzas commented
我是拿来做异步数据导出用的
Joyboo commented
看下这个进程启动了没有,如果启动了应该就是ok的,写入队列的话,任意客户端都可以,包括手动往redis去push都可以触发的
blankzas commented
Joyboo commented
没有要求的,push进去的是什么,consume方法接收到的就是什么,可以打印看看嘛
blankzas commented