有什么办法可以将输入插入到连续运行的webjob中?

问题描述

我在Azure上托管了一个简单的Web作业,它可以连续运行。

我需要传递令牌值作为输入,如何使用连续的Web作业实现这一目标?

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

enter image description here

解决方法

我认为使用webjobs(连续作业)是不可能的,除非您运行了一些可以向其发出请求的Web服务器(例如sinatra,aspnet core等)。您需要将Azure函数与HTTP触发器一起使用。然后,您可以在查询字符串或请求的正文中传递令牌,然后执行所需的操作。

,

Webjob是后台服务,因此无论如何您都无法使用<class 'pandas.core.frame.DataFrame'> RangeIndex: 1 entries,0 to 0 Data columns (total 8 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 0 1 non-null float64 1 1 1 non-null float64 2 2 1 non-null float64 3 3 1 non-null float64 4 4 1 non-null float64 5 5 1 non-null float64 6 6 1 non-null float64 7 7 1 non-null float64 dtypes: float64(8) memory usage: 192.0 bytes 接受用户输入。由于WebJob没有像Azure Function这样的HTTP触发器,因此我看到将消息/输入传递给WebJob的唯一替代方法是使它像使用doc那样由事件驱动,并在接收队列消息时进行处理。有关详细信息,请参阅此queue trigger

以下将.net core 3.1与Web作业sdk v3一起使用。有关旧版sdk的等效代码,请参见quick-start guide

队列触发的作业:

Console.ReadLine()

Program.cs

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);
        }
    }
}

您还可以探索一些旧示例this。但是这些示例使用的是v1 SDK。