2014-07-21 39 views
5

我正在迁移一些以前计划并通过Quartz.Net运行到Azure Webjobs的作业。命令行参数到Azure Webjobs

使用Quartz.Net允许我在与初始化调度程序的控制台程序入口点相同的项目中拥有所有(非常紧凑的)作业类。

现在我想保留这种结构,而不必为每个Web作业创建一个离散的控制台应用程序项目。

目前有什么方法可以配置连续web作业的命令行参数,这将允许根据命令行参数在内部转移到正确的作业吗?

回答

9

在Azure WebJobs中,一种方法是使用命令行参数为每个WebJob创建一个脚本文件:MyApplication.exe arg1 arg2

另一种方法是选择当前WebJob名称运行的方法,您可以从环境变量WEBJOBS_NAME中获取该名称。

对于触发的WebJobs,API中支持命令行参数(每次运行),但Azure门户仍不支持它:https://github.com/projectkudu/kudu/wiki/WebJobs-API#invoke-a-triggered-job

+0

我一直在试用ps脚本作为中级,但WEBJOBS_NAME听起来不错。 –

+0

你能详细说说你提到的第一个选项吗 - 用参数创建一个脚本?如何告诉Web作业运行脚本而不是执行控制台应用程序exe?我也看不到在我的kudu控制台中引用webjobs的任何env变量。 – andy250

+1

@ andy250用您的脚本创建一个run.cmd文件,它将始终是选择运行的脚本。你不会在kudu控制台上看到webjob的env变量,因为它不是作为webjob运行的,你可以用脚本创建一个webjob,打印出所有的env变量,然后查看日志。 –