我们一直在开发一个Android应用程序,它将更新发送给我们的App用户。更新从管理控制台(JAVA SWING应用程序)发布到我们的服务器,然后存储在数据库中。一旦数据成功插入数据库,我们希望通过GCM推送通知向app的每个用户发送相同的更新。由于我们希望构建系统以满足数百万人的需求,我们希望使用多线程(可能使用执行器服务)来推送notifciation.GCM可以立即发送到1000个设备(让我们称之为束)。所以我们需要首先列出一堆(每一堆包含1000 gcmids)。所以这一系列任务就是 1.在db中插入数据 2.创建一堆列表 3.然后将通知发送给每一组
Step3是我们计划使用多线程的地方。但是我想在step1之后返回,这样客户端就会被告知响应(JAVA SWING APP应该是关于数据是否插入到数据库中而无法实现的,并且没有兴趣成功的GCM推动)
那么如何设计这些东西从步骤1返回,接下来的2应该在主线程和步骤3中完成 应该使用多线程来实现。
答案 0 :(得分:0)
这可以通过后台处理或工作进程完成。
有几种方法可以在后台执行这种长时间运行的任务,因此请求的客户端无需等待。
执行此类操作的一些工具是作业/工作人员队列。它可以与Gearman,Redis Resque,Iron MQ一起使用(有许多消息队列可用作作业队列)。