gpt4 book ai didi

mysql - 在多个工作人员上分发推送通知

转载 作者:行者123 更新时间:2023-11-30 23:00:31 26 4
gpt4 key购买 nike

假设您有数百万个 Android GCM 设备 key ,并且您想要在管理脚本中发送它们。该脚本需要大量时间才能完成,因为它将数据库中的键作为队列处理。

问题:如何更快地实现?你如何并行发送这些通知?您如何获得近乎实时的推送通知?

一个解决方案是实例化 X 数量的 celery worker,其中每个 worker 负责它开始从 MySQL 获取数据的偏移量 Y。示例:

Worker 1: starts at offset 0,
Worker 2: starts at offset 10,000,
Worker 3: starts at offset 20,000,
Worker 4: starts at offset 30,000,
Worker 5: starts at offset 40,000,

Worker 1: Restarts at offset 50,000,
Worker 2: Restarts at offset 60,000,

...等等

这是一个可行的解决方案吗?

最佳答案

将任务列表创建为 Celery group .此外,因为您必须从 Android 模型中检索所有记录,所以最好创建单独的 celery 任务,该任务将在后台执行:

@shared_task
def push_notification(offset, limit):
for android in Android.objects.all()[offset:offset+limit]:
pass

@shared_task
def push_notification_to_all():
count = Android.objects.all().count()
limit = 100
group(push_notification.s(offset, limit) for offset in range(0, count, limit)()

push_notification_to_all.delay()

也不是发送

关于mysql - 在多个工作人员上分发推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24274108/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com