标签: azure-webjobs

Azure网站 - 计划任务

我正在开发一个我打算在Windows Azure上托管的网站.该站点需要运行一些每日/每周预定作业,同步到各种第三方数据源,发送用户通知等.它还应该能够运行按需异步任务,例如向用户发送电子邮件等.

我最初的想法是使用Azure云服务来托管它,一个运行MVC 4的Web角色和一个辅助角色都负责计划任务,并将异步任务(发送电子邮件等)从队列存储中拉出来.然而,这将花费我,看看我需要为计算时间支付双倍的费用.

该项目可能在未来证明这一成本是合理的,但在业务开始之前,我真的更喜欢更便宜的替代品.因此,我正在研究Azure网站.

我可以通过将Azure网站用于MVC站点并让工作人员角色运行这些成本来减少一半的成本,但我很想知道其他替代方案,除了从我的管理模块手动触发它们的明显选项.

此外,我可以将网站连接到我的域并使用Azure网站免费使用ssl吗?

.net azure asp.net-mvc-4 azure-web-sites azure-webjobs

10
推荐指数
1
解决办法
7101
查看次数

计划的Azure WebJob但未调用NoAutomaticTrigger-Method

此问题与此相关:运行Azure WebJob而不使用队列

我的场景:我只想每小时将一个文件写入blob存储,不需要任何队列系统.从前一个问题我得到了这个代码 - 它第一次被触发时工作正常:

    [NoAutomaticTrigger]
    public static void DoWork([Blob("container/foobar.txt")] TextWriter writer)
    {
        writer.Write("Hello World " + DateTime.Now.ToShortTimeString())"
    }

    static void Main()
    {
        JobHost host = new JobHost();
        host.Call(typeof(Program).GetMethod("DoWork"));

        host.RunAndBlock();
    }
Run Code Online (Sandbox Code Playgroud)

网站运行"AlwaysOn = true",webjob一直在"运行",但现在调度程序抛出了以下错误 - 没有任何反应:"由于作业已经运行,无法启动新的运行."

目前的结果是文件只写了一次.如果我将"AlwaysOn"切换为false,它"工作",但它似乎很脏,因为如果没有Always on the job结果是"Aborted".

c# azure azure-webjobs

10
推荐指数
1
解决办法
7886
查看次数

从Azure中的WebJob访问SQL数据库

我打算使用WebJobs作为NServiceBus的轻量级替代品,但是想要首先验证可以从触发的WebJob处理程序中进行例行SQL Azure数据库查询吗?我的数据库访问将通过EntityFrameworks.

这个SO线程表明WebJobs不支持SQL数据库,但我希望这只是意味着SQL数据库不能用作WebJob处理程序的触发机制?

Azure Web作业 - 如何连接到Azure MS SQL数据库?

我没有找到发布SQL数据库查询的WebJob示例,但由于WebJob可以访问与主WebSite相同的应用程序配置,我假设可以使用数据库连接详细信息?

azure-webjobs azure-sql-database

10
推荐指数
1
解决办法
1万
查看次数

Azure Webjobs:一个具有多个功能的作业,或者几个具有1个功能的作业?

如何在创建多个具有1个功能的WebJobs并将多个功能捆绑到一个或仅仅几个WebJobs之间做出决定?谢谢

azure azure-webjobs azure-webjobssdk

10
推荐指数
1
解决办法
1754
查看次数

WebJob运行失败,原因是:System.Threading.ThreadAbortException:线程正在中止

我有一个Azure WebJob在使用以下日志输出运行20分钟后失败:

[02/27/2015 00:30:11 > 3e9b72: SYS INFO] Status changed to Initializing
[02/27/2015 00:30:21 > 3e9b72: SYS INFO] Run script 'Namespace.Class.DataProcessor.exe' with script host - 'WindowsScriptHost'
[02/27/2015 00:30:21 > 3e9b72: SYS INFO] Status changed to Running
[02/27/2015 00:30:23 > 3e9b72: INFO] Found the following functions:
[02/27/2015 00:30:23 > 3e9b72: INFO] Namespace.Class.DataProcessor.Functions.ManualTrigger
[02/27/2015 00:30:23 > 3e9b72: INFO] Executing: 'Functions.ManualTrigger' because This was function was programmatically called via the host APIs.
[02/27/2015 00:51:35 > 3e9b72: ERR ] Thread was being aborted.
[02/27/2015 …
Run Code Online (Sandbox Code Playgroud)

azure azure-webjobs

10
推荐指数
1
解决办法
1779
查看次数

如何在没有"始终开启"的情况下保持Azure WebJob的运行

我有一个与网站相关联的连续webjob,我在共享模式下运行该网站.我不想转到Always On选项,因为我的应用程序并不需要.我只想在给我的网站打电话时处理这条消息.

我的问题是,几分钟后工作仍然停止,即使我每隔5分钟在我的网站上不断调用一个虚拟保持方法,该方法将消息发布到由该webjob监视的队列中.

我的webjob是一个使用WebJob SDK构建的简单控制台应用程序,它具有这样的代码

JobHost host = new JobHost(new JobHostConfiguration(storageConnictionSttring));
host.RunAndBlock();
Run Code Online (Sandbox Code Playgroud)

消息处理函数如下所示:

public static void ProcessKeepAliveMessages([QueueTrigger("keepalive")] KeepAliveTrigger message)
{
    Console.WriteLine("Keep Alive message called on :{0}", message.MessageTime);
}
Run Code Online (Sandbox Code Playgroud)

该作业的消息日志基本上说

[03/05/2015 18:51:02 > 4660f6: SYS INFO] WebJob is stopping due to website shutting down
Run Code Online (Sandbox Code Playgroud)

我不介意这种情况是否会发生,但是当网站开始下一次保持活动时,webjob就不会启动.所有消息都排队,直到我进入管理仪表板或SCM门户,如下所示

https://mysite.scm.azurewebsites.net/api/continuouswebjobs
Run Code Online (Sandbox Code Playgroud)

我可以看到这样的状态:

[{"status":"Starting","detailed_status":"4660f6 - Starting\r\n","log_url":"https://mysite.scm.azurewebsites.net/vfs/data/jobs/continuous/WebJobs/job_log.txt","name":"WebJobs","run_command":"mysite.WebJobs.exe","url":"https://mysite.scm.azurewebsites.net/api/continuouswebjobs/WebJobs","extra_info_url":"https://mysite.scm.azurewebsites.net/azurejobs/#/jobs/continuous/WebJobs","type":"continuous","error":null,"using_sdk":true,"settings":{}}]
Run Code Online (Sandbox Code Playgroud)

如果有人能帮我理解这里出了什么问题,我真的很感激.

azure azure-web-sites azure-webjobs azure-webjobssdk

10
推荐指数
2
解决办法
3844
查看次数

Azure WebJob在部署后是否会查看app.config

我有一个在Azure App Services上运行的网站.它有一个随它部署的WebJob,因此一旦部署就会​​被放入它的App_data文件夹中.

如果我在部署后FTP到我的站点的wwwroot/app_data文件夹,则app.config文件没有我在Azure门户中的"应用程序设置刀片"中设置的配置设置.我的web.config中的设置已更改为网站.

最奇怪的是,当我运行WebJob时,日志输出表明正在使用正确的设置!

因此,根据我的标题,WebJob是否在部署后使用App.Settings文件,或者是否使用来自azure门户的应用程序设置的某种内存副本,或者它是否使用web.config中的内容.网站?

为了预先提出一个可能的问题,我知道app.settings被重命名为myappname.exe.config

azure azure-webjobs

10
推荐指数
1
解决办法
8562
查看次数

如何将Azure WebJob部署为自动VSTS部署的一部分

有没有办法让我的Azure WebJob自动部署而无需右键单击并选择"每次发布为Azure WebJob"?即当我签入我的解决方案时,它会自动部署到Azure Portal webjob部分

azure azure-webjobs webjob azure-devops

10
推荐指数
2
解决办法
6177
查看次数

新的Azure WebJob项目 - 在NuGet更新后缺少JobHostConfiguration/RunAndBlock

轻松复制

  1. 创建一个新项目'ASP.NET Web应用程序(.NET Framework).
  2. 构建编译,更新NuGet,一切正常.
  3. 添加:添加新的Azure WebJob项目.
  4. 构建,编译.快乐
  5. 更新WebJob项目的NuGet.
  6. 项目不再编译.

引入了重大变化 https://github.com/Azure/app-service-announcements/issues/129

所以我安装

Microsoft.Azure.WebJobs.Extensions.Storage

这解决了QueueTriggerAttribute

但是在program.cs中

    static void Main()
    {
        var config = new JobHostConfiguration();

        if (config.IsDevelopment)
            config.UseDevelopmentSettings();

        var host = new JobHost(config);
        host.RunAndBlock();
    }
Run Code Online (Sandbox Code Playgroud)

我遇到了以下问题:

  1. 现在缺少JobHostConfiguration.
  2. JobHost构造函数现在有两个参数,包括一个新的IJobHostContextFactory?
  3. RunAndBlock丢失了.它现在是'StartAsync'
  4. 现在代码需要变为异步,因为没有对作业的同步调用.

问题:

  1. 需要安装哪些additioanl组件?
  2. 什么是这个新的JobHostContextFactory?
  3. 我现在如何配置作业?
  4. 我该如何更新异步代码?
  5. 现在我们拥有的只是Start,我如何阻止连续工作?

提前致谢!

  • C#
  • .Net Framework 4.6.2
  • Visual Studio 2017 - v15.8.7

c# azure azure-webjobs

10
推荐指数
1
解决办法
2804
查看次数

Azure WebJobs (3.x) 连续作业未在仪表板中显示函数

我们有一个 Azure WebJob (3.x) 在 Azure 中的 API 应用程序下运行,全部为 Core 2.1。它可以正常发布并运行,但不显示任何函数或在仪表板上列出函数调用。这很奇怪,因为作业的控制台输出确实显示它检测到一个函数:

[10/17/2018 09:26:19 > fa7c81: SYS INFO] Run script 'run.cmd' with script host - 'WindowsScriptHost'
[10/17/2018 09:26:19 > fa7c81: SYS INFO] Status changed to Running
[10/17/2018 09:26:19 > fa7c81: INFO] 
[10/17/2018 09:26:19 > fa7c81: INFO] D:\local\Temp\jobs\continuous\SubmissionJob\43ucb4rv.ipc>dotnet SubmissionJob.dll  
[10/17/2018 09:26:21 > fa7c81: INFO] dbug: Microsoft.Extensions.Hosting.Internal.Host[1]
[10/17/2018 09:26:21 > fa7c81: INFO]       Hosting starting
[10/17/2018 09:26:21 > fa7c81: INFO] info: Microsoft.Azure.WebJobs.Hosting.JobHostService[0]
[10/17/2018 09:26:21 > fa7c81: INFO]       Starting JobHost
[10/17/2018 09:26:21 > fa7c81: INFO] …
Run Code Online (Sandbox Code Playgroud)

c# azure azure-webjobs azure-webjobssdk .net-core

10
推荐指数
1
解决办法
2438
查看次数