具有 Http 触发功能的连续 Azure WebJob

2023-12-27

我目前有一个天蓝色的网络作业,每天执行从一个数据库到另一个数据库的同步,但也想添加手动触发同步的功能。我在webjob项目中设置的功能如下:

public static void SyncData([TimerTrigger("0 0 5 * * *", RunOnStartup = false)] TimerInfo timerInfo) { }

[NoAutomaticTrigger]
public static Task SyncAll(TraceWriter log){ }
[NoAutomaticTrigger]
public static Task SyncBranches(TraceWriter log){ }
[NoAutomaticTrigger]
public static Task SyncCustomers(TraceWriter log){ }
[NoAutomaticTrigger]
public static Task SyncInventory(TraceWriter log){ }

我可以在 webjob 下的 Kudu 仪表板中看到这些功能,但不确定如何使用 MS 文档中列出的 http 请求触发这些功能(here https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-http-webhook):

http://<yourapp>.azurewebsites.net/api/<funcname> 

当我向该端点发出请求时,我收到 404 响应 - 我需要做什么才能通过 http 请求手动触发这些功能?

谢谢, 瑞安


我们可以使用 Kudu网络作业API https://github.com/projectkudu/kudu/wiki/WebJobs-API开始或停止连续工作

POST https://{用户}:{密码}@{站点名称}.scm.azurewebsites.net/api/continuouswebjobs/{作业名称}/start

我们可以从Azure Web App发布设置文件中获取用户和密码信息。我们可以从门户下载该文件

使用 fiddler 测试 Rest API

Note:如何创建Azure函数请参考document https://learn.microsoft.com/en-us/azure/azure-functions/functions-create-first-azure-function.

Update:

有没有办法可以在连续工作中触发特定功能?

根据我的经验,我找不到一种方法或 Rest API 来直接触发连续工作中的特定功能。

我的解决方法是我们可以使用 Webjob QueueTrigger。根据队列消息信息触发特定功能。 我们可以创建一个带有 QueueTrigger 的 WebJob https://learn.microsoft.com/en-us/azure/app-service-web/websites-dotnet-webjobs-sdk-storage-queues-how-to

以下是我根据您的代码的详细步骤。

1.为触发器创建Azure存储队列

2.创建Webjob项目并添加以下代码

 public static void SyncData([QueueTrigger("backup")] string logMessage, TextWriter logger)
    {
        Console.WriteLine($"Start time:{DateTime.Now}");
        switch (logMessage.ToLower())
        {
            case "syncall":
                SyncAll(logger);
                break;
            case "syncbranches":
                SyncBranches(logger);
                break;
            case "synccustomers":
                SyncCustomers(logger);
                break;
            case "syncinventory":
                SyncInventory(logger);
                break;
            default:
                Console.WriteLine("Default case");
                break;
        }
        Console.Write($"Endtime:{DateTime.Now}");

    }
    [NoAutomaticTrigger]
    public static Task SyncAll(TextWriter log)
    {

        Console.WriteLine("SyncAll :"+DateTime.Now);
        return null;
        //await Task.Delay(10);
    }

    [NoAutomaticTrigger]
    public static Task SyncBranches(TextWriter log)
    {
        Console.WriteLine("SyncBranches :" + DateTime.Now);
        return null;
    }

    [NoAutomaticTrigger]
    public static Task SyncCustomers(TextWriter log)
    {
        Console.WriteLine("SyncCustomers :" + DateTime.Now);
        return null;
    }

    [NoAutomaticTrigger]
    public static Task SyncInventory(TextWriter log)
    {
        Console.WriteLine("SyncInventory :" + DateTime.Now);
        return null;
    }

3.使用Azure存储队列 REST API https://learn.microsoft.com/en-us/rest/api/storageservices/fileservices/put-message创建队列消息。

4.从控制台检查结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有 Http 触发功能的连续 Azure WebJob 的相关文章

随机推荐

  • CSS3中有没有办法为列指定不同的宽度?

    我想使用 CSS 来呈现两列布局 我正在使用的标记是这样的 div style margin left 20px margin top 20px div picture box div div name div div 有没有办法让一列的宽
  • 是否可以在越狱的ios上使用外部键盘模拟触摸事件?

    是否可以在 iOS 越狱以及越狱涉及的所有元素上模拟特定屏幕坐标中的触摸事件 按下物理外部键盘 通过相机连接套件或蓝牙的 USB 上的特定按键 我会用它来用脚按下应用程序中的按钮 幅度 我想使用键盘作为脚踏开关 仅供私人使用 没有应用商店或
  • 包含 if 和 .each() 的 jQuery 函数在 IE7 中非常慢

    我基本上搜索具有特定数据属性的元素 因此我循环遍历具有可能具有这些数据属性的类的所有元素 我使用 jQueryeach 函数进行循环 并且已经阅读并体验到 与其他常见浏览器 如 Firefox Chrome 或 Safari 相比 它在 I
  • 如何在没有显示器的情况下使用gui启动linux? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我遇到了一个问题 我有一台安装了redhat enterprise 5 5的服务器 该服务器上正在运行一个 Qt 程序 所以我应该做的是打开我的服务器
  • Android Marshmallow:如何避免无互联网接入时 Wi-Fi 掉线

    我有一台运行 MarshMallow 6 0 的 Nexus 5x 它与无法访问互联网的设备的 Wi Fi 关联 Android 不断断开连接 甚至在尝试几次后也不会自动重新连接 因为它检测到没有互联网访问 即使没有互联网接入 如何强制 A
  • 如何将 JavaScript 变量传递给 React 组件

    我对 React 有点陌生 在将一些变量从 Django 服务器传递到 React 组件时遇到一些问题 这是我所拥有的 服务器是 Django 我有一个 url mydomain com testview 它映射到views py函数tes
  • 如何从 SQL Server 数据库中获取以给定字符串开头的条目?

    我有一个数据库 其中有很多要在标签系统中使用的单词 我已经为自动完成框创建了必要的代码 但我不确定如何以最有效的方式从数据库中获取匹配的条目 我知道 LIKE 命令 但在我看来 它更像是 EQUAL 命令 我只得到与我输入的单词完全相同的单
  • 如何强制 Vaadin 客户端引擎重试向服务器发送请求?

    我目前正在试验 Vaadin Java 框架 我注意到客户端引擎不会重试向服务器发送请求 当移动互联网网络较弱或不一致时 最好继续重试发送请求而不是放弃 有谁知道如何在 Vaadin 实现这一目标 扩展 ApplicationConnect
  • 无法转换参数 C#/SQL Server

    出现错误 无法将参数值从字符串转换为 Int32 我为我的表单编写了该代码 最后运行该代码时出现错误 我试图改变一切 但任何交换都会给我同样的错误 My code const string sqlText INSERT INTO dbo b
  • 在GWT项目中继承外部java源

    我有一个在服务器端使用的 ENUM 我也希望能够在客户端 GWT 上使用这个枚举 这是结构 se mycompany core se mycompany core TheEnum lt this Enum se mycomapny web
  • 安装 Ionic2 应用程序所需的类型

    所以我正在研究 Ionice2 项目 这仍然是新项目 差不多一周了 并且我正在尝试按照下面的教程使用 PouchDB 进行 LocalStorage 教程 http gonehybrid com how to use pouchdb sql
  • UITableView、UIWebViews 和scrollsToTop 属性 = 麻烦

    我的应用程序有一个UITableView UITableView 有一个标题视图 它是UIWebView 默认情况下 滚动视图有其scrollsToTop属性设置为YES 这将使用户能够点击状态栏滚动到滚动视图的顶部 当一个视图中嵌入两个滚
  • 使用类类型向量进行前向声明 - 不允许指向不完整类类型的指针

    我有两节课 foo and bar foo h includes bar h 并包含一个std vector的指针bar对象 在运行时的某个时刻 bar必须访问这个指向其他指针的向量bar对象 所以 foo包含一个名为getBarObjec
  • 如何使用 System.Windows.Shapes.Path 绘制圆的一部分?

    我有一个 Silverlight 应用程序 通过实例化 System Windows Shapes Line 的实例然后将其添加到 MainCanvas Children 来在图片上绘制线条 我想同样添加一些圆段 如果我理解正确 我会想使用
  • PyTorch 自定义转发功能不适用于 DataParallel

    编辑 我尝试过 PyTorch 1 6 0 和 1 7 1 都给了我同样的错误 我有一个模型 允许用户轻松地在不同架构 A 和 B 之间切换 两种架构的前向函数也不同 所以我有以下模型类 附 我在这里只是用一个非常简单的例子来演示我的问题
  • 如何封装数据库访问?

    我正在 NET 中开发一个事务应用程序 希望获得一些有关如何正确封装数据库访问的信息 以便 我没有所有连接字符串 在那个地方 对同一个存储的多次调用 来自不同功能的过程 或者更糟糕的是 多个存储 程序不同 单列 我有兴趣知道使用像 NHib
  • python中的子串比较

    如果我有列表 PhoneDirectory 例如 John 009878788677 Jefrey 67654654645 Maria 8787677766 该函数可用于比较 List 中每个条目中是否存在子字符串 例如 Joh 我尝试过使
  • 卡夫卡生产者在第一条消息上速度很慢

    我在 NET 中有一个测试应用程序 它创建 kafka 生产者并使用 Confluence 客户端库向主题发送一些消息 由于某种原因 第一条消息的确认总是晚 1 秒到达 后续消息的确认几乎立即到达 这是正常行为还是我缺少某些配置 我想我尝试
  • git:更好的 git 恢复方法,无需额外恢复提交

    我在远程 本地分支中有一个提交 我想将该提交从历史记录中删除 并将其中一些放入自己的分支中 基本上 现在我有 D E F G master 而且我要 E G topic D master 这应该在我的本地和 只有一个 称为 origin 远
  • 具有 Http 触发功能的连续 Azure WebJob

    我目前有一个天蓝色的网络作业 每天执行从一个数据库到另一个数据库的同步 但也想添加手动触发同步的功能 我在webjob项目中设置的功能如下 public static void SyncData TimerTrigger 0 0 5 Run