Azure webjob参数

时间:2017-07-06 14:13:29

标签: c# azure cron command-line-arguments azure-webjobs

我将我的控制台应用程序发布为Azure WebJob。我想每天早上0点30分运行webjob。但仅仅是为了测试,我现在每5分钟尝试一次。哪个工作正常。但是我也想使用一个参数,它传递给arg [0]到我的static void Main(string[] args)方法。

My Web Deploy.pubxml

<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit https://go.microsoft.com/fwlink/?LinkID=208121. 
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>MSDeploy</WebPublishMethod>
    <ADUsesOwinOrOpenIdConnect>False</ADUsesOwinOrOpenIdConnect>
    <PublishProvider>AzureWebSite</PublishProvider>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish>http://testProjectHello.azurewebsites.net</SiteUrlToLaunchAfterPublish>
    <LaunchSiteAfterPublish>False</LaunchSiteAfterPublish>
    <MSDeployServiceURL>testProjectHello.scm.azurewebsites.net:443</MSDeployServiceURL>
    <DeployIisAppPath>testProjectHello</DeployIisAppPath>
    <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
    <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
    <UserName>$testProjectHello</UserName>
    <_SavePWD>True</_SavePWD>
    <_DestinationType>AzureWebSite</_DestinationType>
  </PropertyGroup>
</Project>

webjob-发布 - settings.json:

{
  "$schema": "http://schemastore.org/schemas/json/webjob-publish-settings.json",
  "webJobName": "webjobNameTest",
  "runMode": "OnDemand"
}

我的settings.job文件:

{
  "schedule": "0 */5 * * * *"
}

在azure门户网站中,我看到以下内容:

  

姓名类型状态时间表

     

webJobNameTest触发就绪0 * / 5 * * * *

如何在我的网络工作中传递参数?是否也可以从一个控制台应用程序部署具有不同参数的多个azure Web作业?所以我可以每天,每周和每个月运行webjob。包括一个参数,以便我的逻辑知道是否获得日,周或月数据。

1 个答案:

答案 0 :(得分:0)

将其发布为答案,因为我没有评论的资格。这就是对我有用的。

步骤1-在您的自定义控制台exe所在的%HOME%*文件夹下创建一个新的子文件夹

  • 浏览到Azure门户。
  • 服务应用
  • 下创建一个新的网络应用
  • 服务应用下的“工具”菜单中,启动 Kudu 网站
  • 在Kudu网站上,单击 Debug Console -> CMD

例如就我而言,我在 d:\ Home 下创建了一个子文件夹 Tool ,并上传了 MyConsole.exe 以及DLL和MyConsole.exe等随附文件。配置为 d:\ Home \ Tool

第2步-创建BAT文件以启动自定义控制台EXE

我在本地磁盘上创建了一个.BAT文件,例如 Launcher.bat 。该BAT文件只有1行

d:\Home\Tool\MyConsole.exe arg1  arg2

第3步-使用BAT文件创建计划的Web作业

  • 浏览到Azure门户。
  • App Services
  • 选择您的 Web应用
  • 选择网络作业

创建计划的Web作业。上载您在上一步中创建的文件 Launcher.BAT 文件。配置计划并创建作业。

注意事项

  1. 您将需要为命令行参数的每个实例创建一个新的.BAT文件
  2. 但是您不需要复制二进制文件

希望这会有所帮助。