task_ipc_mode
设置task进程与worker进程之间通信的方式。
- 1, 使用unix socket通信,默认模式
- 2, 使用消息队列通信
- 3, 使用消息队列通信,并设置为争抢模式
模式2和模式3的不同之处是,模式2支持定向投递,$serv->task($data, $task_worker_id)
可以指定投递到哪个task进程。模式3是完全争抢模式,task进程会争抢队列,将无法使用定向投递,即使指定了$task_worker_id,在模式3下也是无效的。
设置为3后,task/taskwait将无法指定目标进程ID
消息队列模式
- 消息队列模式使用操作系统提供的内存队列存储数据
swoole_server
程序的工作进程终止后,消息队列中的数据不会删除,因此进程重启后仍然能取到数据- 可使用
ipcrm -q 消息队列ID
手工删除消息队列数据