开发区域

MATLAB高级软件开发

来自MATLAB的通知

等待计算机或集群完成任务就像看着油漆变干一样令人兴奋。XKCD甚至有一个关于它的漫画。

XKCD

MATLAB开发人员经常处理繁重的计算负载,通常运行很长时间,涉及大量数据。在很多情况下,我会站起来伸个懒腰,或者再给自己倒杯咖啡,这是一种我非常喜欢的饮料。

一个通知我进度、完成或错误的系统将允许我离开屏幕并有效地返回。如果我可以将通知路由到启动下一个任务,这不是很好吗?或者让整个团队知道构建或测试活动的状态。这就是AWS简单通知系统(SNS)出现的原因。

在这篇文章中,我将描述MathWorks开发人员如何做到这一点利用云计算功能并快速设置完全托管的发布/订阅(发布/订阅)消息传递系统。配置完成后,它将支持来自MATLAB的基于推送的消息传递。

这篇文章背后的代码已经发布github.com一旦工具被设置为按安装说明,定义扇出拓扑并设置MATLAB来为我自己以及整个团队处理通知变得非常简单。

作为一个例子,MATLAB提供了一个性能基准函数称为板凳上.尽管这是一个虚构的工作负载,但让我指示它运行性能基准测试200次。在我的本地电脑上,这是一个大约需要20分钟的测试。刚好有足够的时间让我喝一杯咖啡,伸展一下身体,而MATLAB则在做繁重的工作。

台(200);

课题设置:

首先,让我设置一个关于社交网络的话题。这是一次性操作。主题定义了一个逻辑地址点,该地址点充当通信通道。它允许我对多个端点进行分组。这些端点可以是简单的,如电子邮件和短信,也可以是更复杂的,如对服务器的HTTP调用、AWS Lambda函数或队列。

sns = aws.sns.Client();sns.initialize;topic = sns.createTopic(“coffee-notification”);

每个主题都有一个称为的惟一标识符在攻击

这很容易查询:

topicARN = topic.getTopicArn;topicARN =“攻击:aws: sns: us-west-2:74[编辑]02:coffee-notification”

端点的订阅:

为了说明,让我们假设我希望MATLAB在我的基准测试完成后给我发送一条文本消息和一封电子邮件。这是在几行代码中设置的。同样,这是一次性操作,因为我定义了要订阅主题的端点的拓扑。

sns.subscribe (topicARN“电子邮件”“啊* * * * ra@mathworks.com”);sns.subscribe (topicARN“短信”“+ 12485555555”);

简而言之,到目前为止,我们所做的就是在我的电子邮件和手机上订阅我们创建的主题。还有更多的可能性,但让我保持简单。

发送通知:

向所有订阅的端点发送通知只需一行MATLAB代码即可完成。我的测试代码现在看起来像:

台(200);sns.publish (topicARN“基准完成!”);

点击运行!现在去喝杯咖啡。

果不其然,20分钟后,我在手机和邮箱里收到了通知:

短信

好的,使用这个工具作为咖啡休息时间通知器是一个简单的用例来说明这一点。在构建更大的系统时,这样的工具特别有用,其中通知可以触发下游操作,如生成报告等。

在通知系统需要扩展到数百或数千个订阅者端点的用例中,该功能真正开始发挥作用。这些通知可以被人类和其他应用程序/服务使用。这种发布-订阅模式在构建面向服务的系统中很常见,用于连接不同的技术堆栈。

那么,你打算用MATLAB做什么呢?除了让它在你喝咖啡休息时给你回电话吗?




由MATLAB®R2019b发布

|

댓글

댓글을남기려면링크를클릭하여MathWorks계정에로그하거나계정을새로만드십시오。