问题描述
我在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();
解决方法
我认为使用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。