【问题标题】:Delegating Tasks for Mission Critical Application为关键任务应用程序委派任务
【发布时间】:2023-03-10 12:58:01
【问题描述】:

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

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

现在,由于这是一个时间密集型应用程序,未能获取数据可能会导致重大损失,因为客户正在为时间关键的数据付费。

目前,我正在将所有通知发送部分推送到队列。工人(在我的服务器上)发送通知。 还有其他更好的方法可以将尽可能多的工作委派给第三方服务器吗? 您是否会推荐使用 Iron.io 工作程序,以便它也可以完成发送通知的工作。 并且可能还从市场中获取数据。

谢谢!

【问题讨论】:

    标签: backgroundworker message-queue software-design worker-process iron.io


    【解决方案1】:

    架构上有多种方法,但听起来好像您做出了正确的选择。在通知过程中使用queue to decouple 生产者是有意义的。这支持更合适的 SOA 架构,您可以在其中独立更改/更新/发展应用程序的各个部分,而无需过多担心紧密耦合的代码。

    也就是说,您的问题是关于卸载给第三方的。有第三方可以从您的代码中抽象出通知部分。我对它们不是很熟悉,但有很多选择:PubNub、Pusher、Twilio、SendGrid、Mailgun、AWS SNS 等。

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

    我们很乐意帮助您从一开始就进行架构设计,只需联系 support@iron.io。

    【讨论】:

    • 谢谢。非常感谢您的回复。我已经在使用第三方服务来发送通知。 IE。 Twilio 用于 SMS Sendgrid 用于电子邮件 Pushover 用于推送通知等……我将看看 Iron.io 工作人员,看看如何在我的应用程序中使用它们。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    • 2018-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多