c# - Azure WebJobs - 未找到函数 - 如何进行无触发器作业?

标签 c# azure azure-webjobs

我是 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/

相关文章:

.net - 运行单进程多线程 .NET 应用程序的 Azure 连续 WebJob 的 CPU 利用率较高

c# - 如何在C#WebDriver中按类型查找元素?

Azure 网络 ActiveFTP 问题

azure - Terraform 没有按正确的顺序销毁 Frontdoor 资源。我怎样才能解决这个问题?

azure - ASP.NET Core 3 和 500.30 进程内启动失败

asp.net-web-api - VSTS 版本定义中的通配符

c# - 低带宽连接的二进制编码?

c# - ASP.NET Core 3.0 中获取当前经过身份验证的用户名的方法是什么?

c# - WinForms中发生关闭事件时如何保存数据?

azure - 长时间运行的 Web 作业被 Azure 中止