我是 Azure WebJobs 的新手,我运行了一个示例,其中用户将图像上传到 Blob 存储并将记录插入到队列中,然后作业从队列中检索该记录作为信号来执行调整大小等操作上传的图像。基本上,在代码中,作业使用公共(public)静态方法上的 QueueTrigger
属性来完成所有这些操作。
现在我需要一个工作,它只是每小时向数据库表中插入一条记录,它没有任何类型的触发器,它只是自行运行。我该怎么做?
我尝试使用静态方法,并在其中插入数据库,作业确实开始了,但我收到一条消息:
No functions found. Try making job classes public and methods public static.
我错过了什么?
编辑 在维克多的回答后,我尝试了以下操作,
static void Main()
{
JobHost host = new JobHost();
host.Call(typeof(Program).GetMethod("ManualTrigger"));
}
[NoAutomaticTrigger]
public static void ManualTrigger()
{
// insert records to db
}
但是这次我得到了InvalidOperationException
,
'Void ManualTrigger()' can't be invoked from Azure WebJobs SDK. Is it missing Azure WebJobs SDK attributes?
最佳答案
如果您不使用 WebJobs SDK 中的任何输入/输出属性(QueueTrigger、Blob、Table 等),则必须使用 NoAutomaticTrigger
属性来装饰作业,以便被SDK。
关于c# - Azure WebJobs - 未找到函数 - 如何进行无触发器作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26110998/