簡體   English   中英

有什么方法可以將輸入插入到連續運行的 webjob 中嗎?

[英]is there any way to insert input to continuously running webjob?

我在 azure 上托管了一個簡單的 webjob 作為持續運行的作業。

我需要將令牌值作為輸入傳遞,如何使用連續的 Web 作業來實現這一點?

static void Main(string[] args)
        {
             try
            {
            Console.WriteLine("Goto Login url" + kite.GetLoginURL());
            Console.WriteLine("Enter request token: ");
            string requestToken = Console.ReadLine();

在此處輸入圖片說明

我不認為使用 webjobs(連續作業)是可能的,除非你有一些 web 服務器在運行,你可以在其中發出請求(例如 sinatra、aspnet 核心等)。 需要將 Azure Functions 與 HTTP 觸發器配合使用。 然后您可以在查詢字符串或請求正文中傳遞令牌並執行您需要執行的操作。

Webjob 是后台服務,因此無論如何您都無法使用Console.ReadLine()獲取用戶輸入。 由於 WebJob 沒有像 Azure Function 這樣的 HTTP 觸發器,我認為將消息/輸入傳遞給 WebJob 的唯一替代方法是使其像使用隊列觸發器一樣由事件驅動,並在接收隊列消息時進行處理。 有關詳細信息,請參閱此快速入門指南

下面使用 .net core 3.1 和 web job sdk v3。 有關舊版 sdk 的等效代碼,請參閱

隊列觸發作業:

using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;

namespace WebJobsSDKSample
{
    public class Functions
    {
        public static void ProcessQueueMessage([QueueTrigger("queue")] string message, ILogger logger)
        {
            // do stuffs with message
            logger.LogInformation(message);
        }
    }
}

程序.cs

using System.Threading.Tasks;
using Microsoft.Extensions.Hosting;

namespace WebJobsSDKSample
{
    public class Program
    {
        static async Task Main()
        {
          var builder = new HostBuilder();
          builder.ConfigureWebJobs(b =>
            {
                b.AddAzureStorageCoreServices();
            });
          var host = builder.Build();
          using (host)
          {
            await host.RunAsync();
          }
       }
    }
}

您還可以在此處探索一些舊示例。但這些示例使用的是 v1 SDK。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM