Azure webjob参数

问题描述 投票:1回答:1

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

我的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 * * * *"
}

在天蓝色的门户网站中,我看到以下内容:

姓名类型状态时间表

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

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

c# azure cron command-line-arguments azure-webjobs
1个回答
0
投票

发布作为答案,因为我没有资格评论。这对我有用。

步骤1 - 在%HOME%*文件夹下创建一个新的子文件夹,您的自定义控制台exe将驻留在该文件夹中

  • 浏览到Azure门户。
  • 在Service App下创建一个新的Web App
  • 从Service App下的Tools菜单中,启动Kudu网站
  • 在Kudu网站上,单击Debug Console - > CMD

例如在我的例子中,我在d:\ Home下创建了一个子文件夹工具,并将MyConsole.exe和附带的文件(如DLL和MyConsole.exe.config)上传到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作业

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

注意事项

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

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.