我想在我的http功能中创建手动定时器触发器。 例如, 当我的函数得到一个http请求时,我想手动创建一个定时器触发器,以便在30分钟后触发另一个函数。如何在我的http功能Azure功能中创建手动定时器触发器
有谁知道我该如何在Azure函数中完成?
我想在我的http功能中创建手动定时器触发器。 例如, 当我的函数得到一个http请求时,我想手动创建一个定时器触发器,以便在30分钟后触发另一个函数。如何在我的http功能Azure功能中创建手动定时器触发器
有谁知道我该如何在Azure函数中完成?
这是Programmatically Schedule one-time execution of Azure function
一个DUP有你的实际工作中通过队列触发完成,然后就可以通过延期可见排队的消息:
CloudQueue queueOutput; // same queue as trigger listens on
var strjson = JsonConvert.SerializeObject(message); // message is your payload
var cloudMsg = new CloudQueueMessage(strjson);
var delay = TimeSpan.FromHours(1);
queueOutput.AddMessage(cloudMsg, initialVisibilityDelay: delay);
正如我在我的评论前面提到的,如果可能的话,您可以插入一条消息,并在您的http函数获取请求时延迟30分钟指定initialVisibilityDelay,然后您可以使用队列触发器函数处理队列消息并执行一些任务。
如果您在Azure门户上创建Azure功能,则可以使用reference Microsoft.WindowsAzure.Storage
并使用以下代码在http触发功能中添加消息。
参考组件和进口的命名空间
#r "Microsoft.WindowsAzure.Storage"
using System.Net;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Queue;
添加信息,并指定initialVisibilityDelay
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("{storage_connection_string}");
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
CloudQueue queue = queueClient.GetQueueReference("mymes");
queue.CreateIfNotExists();
CloudQueueMessage message = new CloudQueueMessage("{message_body}");
queue.AddMessage(message, initialVisibilityDelay: TimeSpan.FromMinutes(30));
此外,你可以create a function triggered by Azure Queue storage处理您的队列中的消息。
您不需要创建定时器触发器函数,您可以尝试发送队列消息,并在您的http函数获取请求时用30分钟的延迟指定initialVisibilityDelay,然后您可以使用队列触发器函数处理队列消息。 –
约[initialVisibilityDelay]详细信息(https://docs.microsoft.com/en-us/dotnet/api/microsoft.windowsazure.storage.queue.cloudqueue.addmessage?redirectedfrom=MSDN&view=azurestorage-8.1.3#Microsoft_WindowsAzure_Storage_Queue_CloudQueue_AddMessage_Microsoft_WindowsAzure_Storage_Queue_CloudQueueMessage_System_Nullable_System_TimeSpan__System_Nullable_System_TimeSpan__Microsoft_WindowsAzure_Storage_Queue_QueueRequestOptions_Microsoft_WindowsAzure_Storage_OperationContext_) –