猿问

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

我需要触发一个在我的天蓝色数据工厂内构建的管道,其中包含基于我存储在数据库中的文件的某些参数。我的问题是我需要安排这个管道在一定时间(通常是几个小时)后触发一次。这是调度所必需的,我无法通过事件驱动来做到这一点。我正在使用 .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 小时)后进行运行,如果可能的话,我只会创建延迟的管道运行...我已经尝试了所有方法,例如将频率留空,将其更改为每种可能性,甚至使用不同的触发器类,例如翻滚和事件。


湖上湖
浏览 90回答 1
1回答

鸿蒙传说

有一个简单粗暴的解决方案。创建一个带有整数类型参数的新管道。管道中的第一个活动将是等待活动。使用该参数设置等待活动应持续多长时间。管道中的第二个活动将是执行管道活动,它依赖于等待活动,并将触发您真正想要运行的管道。该解决方案允许您选择等待多长时间,然后执行您想要运行的实际管道。我认为等待活动以秒为单位,因此您需要进行一些算术运算。不过,由于您可以手动触发,所以这应该不是问题。
随时随地看视频慕课网APP
我要回答