草庐IT

Asynchronous

全部标签

php - PHP 中的消息队列

我开发了一个restapi,它接受一些数据并将其存储在消息队列(Redis列表)中。现在从redis中将这些数据推送到MySQL数据库中。问题是客户端需要等到数据写入mysql。我希望客户端应该等到数据写入消息队列(Redis列表)并且将数据推送到MySQL的函数应该异步执行。我该怎么做?我的整个代码库都是用PHP编写的,所以我更喜欢用PHP。我读过这个但还没有尝试过。DistributedqueueexampleinPHPusingRedis我对如何执行slave.php(在链接中提到)感到困惑。我的意思是当队列中有新消息到达时,slave.php将如何找到它。我不想为此使用cron

php - PHP 中的消息队列

我开发了一个restapi,它接受一些数据并将其存储在消息队列(Redis列表)中。现在从redis中将这些数据推送到MySQL数据库中。问题是客户端需要等到数据写入mysql。我希望客户端应该等到数据写入消息队列(Redis列表)并且将数据推送到MySQL的函数应该异步执行。我该怎么做?我的整个代码库都是用PHP编写的,所以我更喜欢用PHP。我读过这个但还没有尝试过。DistributedqueueexampleinPHPusingRedis我对如何执行slave.php(在链接中提到)感到困惑。我的意思是当队列中有新消息到达时,slave.php将如何找到它。我不想为此使用cron

asynchronous - 如何使用 futures.rs 和 Redis PubSub 为阻塞调用实现 future 流?

我正在尝试创建一个系统,我的应用程序可以通过该系统从RedisPubSubchannel接收流数据并进行处理。Redisdriver我正在使用的,以及我见过的所有其他Rust的Redis驱动程序,使用阻塞操作从channel获取数据,该channel仅在接收数据时返回值:letmsg=matchpubsub.get_message(){Ok(m)=>m,Err(_)=>panic!("Couldnotgetmessagefrompubsub!")};letpayload:String=matchmsg.get_payload(){Ok(s)=>s,Err(_)=>panic!("Cou

asynchronous - 如何使用 futures.rs 和 Redis PubSub 为阻塞调用实现 future 流?

我正在尝试创建一个系统,我的应用程序可以通过该系统从RedisPubSubchannel接收流数据并进行处理。Redisdriver我正在使用的,以及我见过的所有其他Rust的Redis驱动程序,使用阻塞操作从channel获取数据,该channel仅在接收数据时返回值:letmsg=matchpubsub.get_message(){Ok(m)=>m,Err(_)=>panic!("Couldnotgetmessagefrompubsub!")};letpayload:String=matchmsg.get_payload(){Ok(s)=>s,Err(_)=>panic!("Cou

postgresql - 如何在多个进程之间共享一组数据?

我们需要建立一个系统,让多个进程处理同一个数据集。我们的想法是拥有一组可以被我们的工作进程(异步)拉取的元素(即没有重复的值)。进程可能分布在多个服务器上,因此我们需要一个分布式的解决方案。目前我们想到的模式是用Redis做一个集合,这个集合保存工作数据。每个进程都应该连接到集合,并从中弹出一个值。spop的随机功能实际上对我们来说是一个优势,因为我们需要随机访问集合中的元素。数据必须从我们的主PostgreSQL数据库中填充。就像我说的,我们还有一个可供查询的PostgreSQL数据库,进程可以在请求元素时访问该数据库。但是,我们不知道在重负载下是否会成为瓶颈。我们确实希望在此子系统

postgresql - 如何在多个进程之间共享一组数据?

我们需要建立一个系统,让多个进程处理同一个数据集。我们的想法是拥有一组可以被我们的工作进程(异步)拉取的元素(即没有重复的值)。进程可能分布在多个服务器上,因此我们需要一个分布式的解决方案。目前我们想到的模式是用Redis做一个集合,这个集合保存工作数据。每个进程都应该连接到集合,并从中弹出一个值。spop的随机功能实际上对我们来说是一个优势,因为我们需要随机访问集合中的元素。数据必须从我们的主PostgreSQL数据库中填充。就像我说的,我们还有一个可供查询的PostgreSQL数据库,进程可以在请求元素时访问该数据库。但是,我们不知道在重负载下是否会成为瓶颈。我们确实希望在此子系统

python - Redis 队列 + python-rq : Right pattern to prevent high memory usage?

我们目前正在将Redis与我们的Heroku托管的Python应用程序一起使用。我们将Redis与python-rq纯粹用作任务队列,以提供延迟执行一些时间密集型任务。一项任务是从PostgreSQL数据库中检索一些数据并将结果写回它-因此Redis实例中根本没有保存任何有值(value)的数据。我们注意到,根据执行的作业量,Redis正在消耗越来越多的内存(增长速度约为10MB/小时)。CLI上的FLUSHDB命令修复了这个问题(将其减少到~700kB使用的RAM)直到RAM再次满。根据我们(未更改的标准)设置,作业结果保留500秒。随着时间的推移,一些作业当然会失败,它们会被移到失

python - Redis 队列 + python-rq : Right pattern to prevent high memory usage?

我们目前正在将Redis与我们的Heroku托管的Python应用程序一起使用。我们将Redis与python-rq纯粹用作任务队列,以提供延迟执行一些时间密集型任务。一项任务是从PostgreSQL数据库中检索一些数据并将结果写回它-因此Redis实例中根本没有保存任何有值(value)的数据。我们注意到,根据执行的作业量,Redis正在消耗越来越多的内存(增长速度约为10MB/小时)。CLI上的FLUSHDB命令修复了这个问题(将其减少到~700kB使用的RAM)直到RAM再次满。根据我们(未更改的标准)设置,作业结果保留500秒。随着时间的推移,一些作业当然会失败,它们会被移到失

Swift:异步方法进入 while 循环

我想在while循环中使用异步函数,但该函数没有足够的时间完成,while循环再次开始并且永不结束。我应该用incrementvariable来实现这个问题,但是解决方案是什么?非常感谢。“Intorepeat”-“Intofunction”之间的输出循环varcondition=truevaruserId=Int.random(1...1000)repeat{print("Intorepeat")checkId(userId,completionHandler:{(success:Bool)->()inifsuccess{condition=false}else{userId=Int

Swift:异步方法进入 while 循环

我想在while循环中使用异步函数,但该函数没有足够的时间完成,while循环再次开始并且永不结束。我应该用incrementvariable来实现这个问题,但是解决方案是什么?非常感谢。“Intorepeat”-“Intofunction”之间的输出循环varcondition=truevaruserId=Int.random(1...1000)repeat{print("Intorepeat")checkId(userId,completionHandler:{(success:Bool)->()inifsuccess{condition=false}else{userId=Int