1.在swoole中,如果处理耗时等类似业务,可以将任务放入队列或者扔给taskWorker执行 2.在webman中,如果想执行类似业务,应该如何操作呢? 3.如果交给自定义进程,应该如何操作呢? 4.另外,关于自定义进程,监听和非监听,在应用上,有什么区别吗,比如应用场景?
webman 提供了redis队列,可以处理异步任务。https://www.workerman.net/doc/webman#/queue/redis
任务交给自定义进程可以参考这个 https://wenda.workerman.net/question/6057
自定义进程监听和非监听区别就是字面意思,一个带监听,一个不带。当进程不需要外部主动传递信息时,可以不用监听,比如一些定时任务。
"任务交给自定义进程可以参考这个 https://wenda.workerman.net/question/6057",这个例子,业务进程还是会被阻塞吧,并没有实现异步啊
我在webman 使用的 workerman的异步任务 http://doc.workerman.net/faq/async-task.html
这里想请教一下,向任务进程投递任务,如果任务需要5秒才能返回,这5秒内,当前进程会阻塞等待吗?
https://wind-framework.github.io/docs/#/zh-cn/core/task
这是webman么?
workor大·· webman里面如果想用 您的异步http client。实现一个类似代理那样的功能,但是controller里面不是需要同步返回一个Response麽? 这个有什么好办法麽?
可以做个中间件,在中间件中做个判断是否是 Response 如何不是就加个 Response 返回
不是非常明白`` 希望能给出一些代码, 感谢=ω= 我目前能想到的,只有把 App.php 的 getCallback 改一改了,因为那边就是同步的调用.
这个目前没有办法做到。
这里可以推荐一下你去看一下I/O模型,通常来说有blocking IO、async IO、non-blocking IO; 粗俗的讲
这里面的taskWoker在我理解,实际上和消息队列或者自定义进程没有区别,使用的还是AIO的思想。
这里您指的耗时任务还需要明确一个点,就是当前进程是否在意其执行结果,是否需要等待收集,如果需要阻塞等待收集其结果,最简单的办法就是循环监听,直到收集到且跳出循环,并返回;这一点实际上和golang和swoole的协程的waitGroup是一个道理;进程间可以结合信号量监听pipe/file等、线程间可以监听channel/竞态的内存。
如果不在意其执行结果,或者不需要等待收集的话,市面上成熟的任务调度系统或者消息队列是比较推荐的,自行实现自定义进程通过rpc通讯也是可以的,使用成熟产品可以降低业务开发的心智负担。
校长6666
webman 提供了redis队列,可以处理异步任务。https://www.workerman.net/doc/webman#/queue/redis
任务交给自定义进程可以参考这个 https://wenda.workerman.net/question/6057
自定义进程监听和非监听区别就是字面意思,一个带监听,一个不带。当进程不需要外部主动传递信息时,可以不用监听,比如一些定时任务。
"任务交给自定义进程可以参考这个 https://wenda.workerman.net/question/6057",这个例子,业务进程还是会被阻塞吧,并没有实现异步啊
我在webman 使用的 workerman的异步任务
http://doc.workerman.net/faq/async-task.html
这里想请教一下,向任务进程投递任务,如果任务需要5秒才能返回,这5秒内,当前进程会阻塞等待吗?
https://wind-framework.github.io/docs/#/zh-cn/core/task
这是webman么?
workor大·· webman里面如果想用 您的异步http client。实现一个类似代理那样的功能,但是controller里面不是需要同步返回一个Response麽? 这个有什么好办法麽?
可以做个中间件,在中间件中做个判断是否是 Response 如何不是就加个 Response 返回
不是非常明白`` 希望能给出一些代码, 感谢=ω= 我目前能想到的,只有把 App.php 的 getCallback 改一改了,因为那边就是同步的调用.
这个目前没有办法做到。
这里可以推荐一下你去看一下I/O模型,通常来说有blocking IO、async IO、non-blocking IO;
粗俗的讲
这里面的taskWoker在我理解,实际上和消息队列或者自定义进程没有区别,使用的还是AIO的思想。
这里您指的耗时任务还需要明确一个点,就是当前进程是否在意其执行结果,是否需要等待收集,如果需要阻塞等待收集其结果,最简单的办法就是循环监听,直到收集到且跳出循环,并返回;这一点实际上和golang和swoole的协程的waitGroup是一个道理;进程间可以结合信号量监听pipe/file等、线程间可以监听channel/竞态的内存。
如果不在意其执行结果,或者不需要等待收集的话,市面上成熟的任务调度系统或者消息队列是比较推荐的,自行实现自定义进程通过rpc通讯也是可以的,使用成熟产品可以降低业务开发的心智负担。
校长6666