1

我正在研究关键任务应用程序。 该应用程序使用第三方服务从不同股票市场(如纽约证券交易所,纳斯达克等)获取股票市场数据。 客户可以来申请并添加他们的投资组合(他们拥有哪个公司的股份)。 然后设置警报。例如。纳斯达克AAPL价格高于$ xxx时通知我。当MSFT价格低于纽约证券交易所$ zzz时。为任务关键型应用程序委托任务

我有一个cron工作,可以从第三方服务获取所有用户添加的代码(AAPL,GOOG,MSFT等)每1分钟的市场数据。 获取数据后,我会获取用户创建的所有警报,然后通过电子邮件,短信,Pushover,Twitter,Facebook消息等向他们发送通知。还要将该通知添加到应用的数据库,以便用户可以在应用中看到它他们登录。

现在,由于这是时间密集型应用程序,因为客户正在为时间关键型数据付费,所以无法获取数据可能会导致巨大损失。

目前,我推送所有的通知发送部分队列。工作人员(在我的服务器上)发送通知。 有没有其他更好的方法可以将尽可能多的工作委托给第三方服务器? 您会推荐使用Iron.io工作人员,因此它也可以发送通知。 也可能从市场获取数据。

谢谢!

回答

1

建筑上有很多方法,但听起来好像你做出了正确的选择。使用queue to decouple来自通知过程的生产者是有道理的。这使得更适合的SOA架构可以独立地更改/更新/演化应用程序的各个部分,而不用担心过于紧密耦合的代码。

这就是说,你的问题是专门负责卸载到第三方。有第三方可以将通知部分从代码中抽象出来。我不是很熟悉它们,但有很多选项:PubNub,Pusher,Twilio,SendGrid,Mailgun,AWS SNS等。

我为Iron.io工作。我们有很多客户在做你想要完成的事情:创建成为小型服务的工作人员,并从推送事件,计划任务或按需呼叫他们。这使您不必处理排队,路由,计划和工作/后台服务器的容量。

我们很乐意帮助您从一开始就设计出正确的东西,只需联系[email protected]即可。

+0

谢谢。真的很感谢你的回应。 我已经在使用第三方服务发送通知。 即。 Twilio的短信 Sendgrid的电子邮件 pushover推送通知,等... 我会看看Iron.io工作人员,看看我可以如何使用它们在我的应用程序。 再次感谢。 –