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

时间:2019-08-08 22:31:52

标签: c# azure azure-data-factory

我需要基于存储在数据库中的文件,使用某些参数来触发在我的azure数据工厂内部构建的管道。我的问题是我需要安排此管道以在一定时间(通常为几个小时)后触发ONCE。这是安排计划所必需的,我无法通过事件驱动。我正在使用.NET SDK

我已经创建了到数据工厂的连接,并创建了计划触发器。我的问题是,计划触发器不允许我触发一次然后停止。它需要间隔和停止日期,我试图将停止日期设置为与开始日期相同,但是却出现“间隔不能超过结束日期”的错误。

 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个小时)后进行运行,我只会创建一个延迟的管道运行...我尝试了一切操作,例如离开频率空白,将其更改为各种可能性,甚至使用诸如翻转和事件之类的不同触发类。

1 个答案:

答案 0 :(得分:1)

有一个简单的粗略解决方案。使用整数类型的参数创建一个新管道。管道中的第一个活动将是“等待活动”。使用参数设置“等待活动”应持续多长时间。管道中的第二个活动将是“执行管道活动”,它取决于“等待”活动,并将触发您真正要运行的管道。

此解决方案使您可以选择等待多长时间,然后执行要运行的实际管道。我认为,等待活动以秒为单位,因此您需要做一些算术运算。但是,由于您可以手动触发,所以这不是问题。