gpt4 book ai didi

c# - 我可以创建一个向仪表板公开功能但不使用 Azure 存储的 Azure Webjob 吗?

转载 作者:太空狗 更新时间:2023-10-30 00:51:39 27 4
gpt4 key购买 nike

我想创建一个 Azure Webjob 来满足批处理需求(具体来说,它将不断迭代 SQL Azure 数据库表,选取某些记录,执行一些操作,然后更新表)。我不需要 Azure 存储。

在这种情况下,我仍然可以向 Azure 函数调用仪表板公开我的方法吗?或者具有 Azure 存储属性的方法是唯一公开的方法吗?

作为一个例子,我可能有一个函数:

ShowTotalNumRecordsProcessedToday()

我想公开并能够从仪表板调用。我创建了一些公共(public)测试函数,但它们没有显示在仪表板中。

我可以在我的场景中执行此操作吗?

最佳答案

无论您是否使用 Azure 存储来存储数据,您都可以利用 WebJobs SDK。

以下是使用 SDK 进行日志记录但仅使用其他内容的作业示例:

public static void Main
{
using(JobHost host = new JobHost())
{
// Invoke the function from code
host.Call(typeof(Program).GetMethod("DoSomething"));

// The RunAndBlock here is optional. However,
// if you want to be able to invoke the function below
// from the dashboard, you need the host to be running
host.RunAndBlock();
// Alternative to RunAndBlock is Host.Start and you
// have to create your own infinite loop that keeps the
// process alive
}
}

// In order for a function to be indexed and visible in the dashboard it has to
// - be in a public class
// - be public and static
// - have at least one WebJobs SDK attribute
[NoAutomaticTrigger]
public static void DoSomething(TextWriter log)
{
log.WriteLine("Doing something. Maybe some SQL stuff?");
}

但是,您将需要一个存储帐户来连接主机和仪表板。

您还可以为 SQL 或其他类似的东西创建自己的“自定义触发器”:

public static void Main
{
using (JobHost host = new JobHost())
{
host.Start();

while (!TerminationCondition)
{
if (SomeConditionRequiredForTheTrigger)
{
host.Call(typeof(Program).GetMethod("DoSomething"));
}
Thread.Sleep(500);
}

host.Stop();
}
}

// In order for a function to be indexed and visible in the dashboard it has to
// - be in a public class
// - be public and static
// - have at least one WebJobs SDK attribute
[NoAutomaticTrigger]
public static void DoSomething(TextWriter log)
{
log.WriteLine("Doing something. Maybe some SQL stuff?");
}

PS:直接在浏览器中编写代码,因此可能会出现一些错误。

关于c# - 我可以创建一个向仪表板公开功能但不使用 Azure 存储的 Azure Webjob 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25811659/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com