有100个任务要处理,如何分发任务

xiaoming

1 从数据库获取数据, 数据遍历 发送Http请求,
2 那也是要等待返回数据,串行执行,时间并没减少

疑问 难道得用 curl_multi

// 创建一个Worker监听2345端口,使用http协议通讯
$http_worker = new Worker("http://0.0.0.0:2345");

// 启动4个进程对外提供服务
$http_worker->count = 4;

$http_worker->onMessage = function (TcpConnection $connection, Request $request) use ($http_worker) {
    $data = $request->rawBody();
    sleep(3);
    $connection->send($http_worker->id);
};

// 运行worker
Worker::runAll();
1074 4 1
4个回答

2548a

脱离实际任务需求谈有多少个任务没意义,不同类型的任务,有不同的应对方法.
这个是前面别人的多任务我给的思路,你可以去参考看看
https://www.workerman.net/q/8617#reply_12145

  • xiaoming 2022-06-18

    100个只是抽象数据, 我的大致意思 比如要发送100封邮件是不同的用户, 尽快的发送

  • 2548a 2022-06-18

    在我看来,redis 队列插件就已经可以处理了.

six

并发请求http用 curl_multi

  • 暂无评论
蚂蚁搬家

发送到队列 开多进程消费 消费失败 延迟重试 速度杠杠的

  • 暂无评论
缝合

php的话就是队列多进程。

  • 暂无评论
年代过于久远,无法发表回答
🔝