开发区

高级软件开发与MATLAB

来自MATLAB的通知

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

XKCD

MATLAB开发人员经常处理沉重的计算负载,经常运行很长时间,涉及大量数据。在很多情况下,我站起来伸展一下身体,或者再给自己倒一杯咖啡,这种饮料我爱得几乎到了极点。

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

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

这篇文章背后的代码已于发布github.com一旦工具按照图纸进行了设置安装说明,定义扇出拓扑和设置MATLAB来处理我和整个团队的通知变得很简单。

例如,MATLAB提供了一个名为长凳.尽管这是一个人为设计的工作负载,但我可以指示它运行性能基准200次。在我的本地电脑上,这个测试大约需要20分钟。只要足够的时间让我得到一杯漂亮的咖啡和伸展MATLAB做沉重的起重。

台(200);

主题设置:

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

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

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

这很容易查询:

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

端点的订阅:

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

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

简言之,到目前为止,我们所做的是订阅我的电子邮件和手机,订阅我们创建的主题。还有很多可能,但让我保持这个简单的说明。

发送一个通知:

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

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

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

果然,20分钟后,我的手机和电子邮件收到了通知:

短讯服务

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

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

那么,你打算用MATLAB做什么呢?除了让它在你喝咖啡休息时把你叫回来?




与MATLAB®R2019b一起发布

|

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。