天蓝色的功能 - 如何安排可能取消的工作
azure functions - how to schedule work with possible cancelation
我正在尝试构建一个应用程序来帮助患有糖尿病的朋友。糖尿病患者将单击 phone 应用程序上的签到按钮,该应用程序将调用一个 Azure 函数,传递一个电子邮件 address/mobile 号码等,一个说明他们下次可以签到的持续时间,以及另一个指定何时可以签到的持续时间来不及签到。如果糖尿病患者在允许的 window 期间未签到,将发送电子邮件或文本以提醒某人糖尿病患者尚未签到。如果他们单击下一个按钮签入 window 之前安排的工作需要取消(或者可能需要设置状态,然后可以在发送电子邮件之前进行检查)。
我已经构建了 phone 应用程序,并设法获得了一个 HttpTriggered 函数来给我发电子邮件。我现在有点卡住了。我如何安排某事在未来的特定时间点发生,以及如何在正确的用户交互后取消它?任何帮助将不胜感激。
How do I schedule something to happen at a specific point in the
future
您可以使用队列触发函数(您可以使用 Azure 存储队列或 Azure 服务总线队列)。
基本上,您将消息发送到具有可见性超时的队列,以便消息仅在您准备好处理时才出现在队列中。您可以在 HTTP 触发函数中执行此操作。
how could I cancel it following the correct user interaction?
这就是事情变得有趣的地方!
你可以这样做的方法是在你的数据库中有一些字段,这将表明用户已经交互并且不需要进一步处理。
您的队列触发函数仍会触发,但您要做的是首先检查您的数据库是否需要任何进一步的操作。
如果不需要任何操作,那么您只需让函数完成,以便从队列中删除消息。
如果需要任何操作,那么您将执行该操作,然后让函数完成,以便从队列中删除消息。
我建议您查看 Durable Functions,它是 Azure Functions(作为 NuGet 包安装)的扩展,允许 运行 长 运行 工作流(包括等待事件和定时器)。
此扩展程序在后台使用存储队列和表,但您只需要了解持久函数 API。您也不需要预配任何其他 Azure 服务,因为存储帐户已被您的 Function App 使用。
在您的情况下,您可以使用 Human Interaction pattern in combination with timers。
我有很多解释持久功能的视频,您可能会发现这些有用:https://youtube.com/playlist?list=PLoSzmz8jSD1fahiSdKdf4073AOdti_rx8。
我正在尝试构建一个应用程序来帮助患有糖尿病的朋友。糖尿病患者将单击 phone 应用程序上的签到按钮,该应用程序将调用一个 Azure 函数,传递一个电子邮件 address/mobile 号码等,一个说明他们下次可以签到的持续时间,以及另一个指定何时可以签到的持续时间来不及签到。如果糖尿病患者在允许的 window 期间未签到,将发送电子邮件或文本以提醒某人糖尿病患者尚未签到。如果他们单击下一个按钮签入 window 之前安排的工作需要取消(或者可能需要设置状态,然后可以在发送电子邮件之前进行检查)。
我已经构建了 phone 应用程序,并设法获得了一个 HttpTriggered 函数来给我发电子邮件。我现在有点卡住了。我如何安排某事在未来的特定时间点发生,以及如何在正确的用户交互后取消它?任何帮助将不胜感激。
How do I schedule something to happen at a specific point in the future
您可以使用队列触发函数(您可以使用 Azure 存储队列或 Azure 服务总线队列)。
基本上,您将消息发送到具有可见性超时的队列,以便消息仅在您准备好处理时才出现在队列中。您可以在 HTTP 触发函数中执行此操作。
how could I cancel it following the correct user interaction?
这就是事情变得有趣的地方!
你可以这样做的方法是在你的数据库中有一些字段,这将表明用户已经交互并且不需要进一步处理。
您的队列触发函数仍会触发,但您要做的是首先检查您的数据库是否需要任何进一步的操作。
如果不需要任何操作,那么您只需让函数完成,以便从队列中删除消息。
如果需要任何操作,那么您将执行该操作,然后让函数完成,以便从队列中删除消息。
我建议您查看 Durable Functions,它是 Azure Functions(作为 NuGet 包安装)的扩展,允许 运行 长 运行 工作流(包括等待事件和定时器)。
此扩展程序在后台使用存储队列和表,但您只需要了解持久函数 API。您也不需要预配任何其他 Azure 服务,因为存储帐户已被您的 Function App 使用。
在您的情况下,您可以使用 Human Interaction pattern in combination with timers。
我有很多解释持久功能的视频,您可能会发现这些有用:https://youtube.com/playlist?list=PLoSzmz8jSD1fahiSdKdf4073AOdti_rx8。