如何在 C# 数据工厂中创建具有长时间延迟的一次性管道 运行

How can I create a one time pipeline run with a long delay in c# data factory

我需要触发我在我的 Azure 数据工厂内部构建的管道,其中某些参数基于我存储在数据库中的文件。我的问题是我需要安排此管道在一定时间(通常是几小时)后触发一次。这是调度所必需的,我无法做到事件驱动。我正在使用 .NET SDK

我已经创建了到我的数据工厂的连接并创建了计划触发器。我的问题是计划触发器不允许我触发一次然后停止。它需要间隔和停止日期,我试图将停止日期设置为与开始日期相同,但它给了我 "interval cannot exceed end date" 的错误。

 for (int x = 0; x < intervals.Count; x++)
            {
                // Create a schedule trigger
                string triggerName = location + deliveryDate+x;
                ScheduleTrigger myTrigger = new ScheduleTrigger()
                {

                    Pipelines = new List<TriggerPipelineReference>()
                    {
                        // Associate the Adfv2QuickStartPipeline pipeline with the trigger
                        new TriggerPipelineReference()
                        {
                            PipelineReference = new PipelineReference(pipelineName),
                            Parameters = pipelineParameters,
                        }
                    },
                    Recurrence = new ScheduleTriggerRecurrence()
                    {
                        StartTime = intervals[x],
                        TimeZone = "UTC",
                        EndTime = intervals[x],
                        Frequency = RecurrenceFrequency.Day

                    }





                };

                // Now, create the trigger by invoking the CreateOrUpdate method
                triggerResources.Add(triggerName,new TriggerResource()
                {
                    Properties = myTrigger
                });
            }

我不能做一个管道 运行 因为我没有办法在一定的延迟(比如 2 小时)后做一个 运行 如果可能的话我会创建一个延迟的管道运行...我已经尝试了所有方法,例如将频率留空,将其更改为各种可能性,甚至使用不同的触发器 类,例如翻滚和事件。

有一个简单粗暴的解决方案。使用整数类型的参数创建一个新管道。管道中的第一个 activity 将是等待 Activity。使用参数设置 Wait Activity 应持续多长时间。管道中的第二个 activity 将是一个执行管道 Activity,它取决于等待 Activity,并将触发您真正想要 运行.[=10 的管道=]

此解决方案可让您选择等待多长时间,然后执行您想要的真正管道 运行。我认为 Wait Activity 以秒为单位,因此您需要做一些算术运算。不过既然可以手动触发,那应该不是问题。