【发布时间】:2015-02-07 22:07:49
【问题描述】:
我正在使用 Twilio 到 send/receive texts in a Rails 4.2 应用程序。我是批量发送,一次大约 1000 个,偶尔接收。
目前,当我收到一条文本时,我将其保存到数据库(to、from、body),然后将该记录传递给 ActiveJob 工作人员以供稍后处理。为了发送消息,我目前将 Twilio 参数保存到另一个数据库并将该记录传递给另一个 ActiveJob 工作人员。因为我经常分批做,所以我有两个工人。第一个传出消息工作者发送一条消息。第二个查询数据库并找到应该接收消息的所有用户,为每个应该发送的消息创建一个数据库记录,然后将该记录传递给第一个传出消息工作者。所以第二个基本上只是为第一个处理创建了一堆工作。
现在我让工作人员在完成处理(传入和传出)后销毁记录。我担心在服务器、redis 或 resque 出现故障时不会持久保存东西,但我不知道这是否真的是一个好的设计模式。有人建议我只使用香草红宝石对象并将其 id 传递给工作人员,但我不确定这如何影响数据可靠性。那么创建所有这些数据库是不是太过分了,我应该只创建香草红宝石对象并将这些对象的 ID 传递给工作人员吗?
感谢所有见解,
画了
【问题讨论】:
标签: ruby-on-rails backgroundworker twilio resque rails-activejob