2016-12-26 2 views
0

アズールscheculerのジョブコレクションに残りのジョブの数を確認する方法ブログの下に、次のことで、私はAzureのスケジューラ実装した

http://fabriccontroller.net/a-complete-overview-to-get-started-with-the-windows-azure-scheduler/

は、今私は、スケジューラのジョブを/ /更新を作成、削除することができていますが、どのようにジョブの収集がいっぱいであるかどうかを確認できますか?基本的には、私の現在のジョブコレクションがいっぱいになるたびに別のコレクションを作成したいと思います。私のコードを共有

は、スケジューラAPIを見た後

public class AzureSchedulerStorage : ISchedulerStorage 
    { 
     private CertificateCloudCredentials credentials; 
     //private CloudServiceManagementClient cloudServiceClient; 
     private string cloudServiceName; 
     // private IHalseyLogger logger; 

     public AzureSchedulerStorage(string cloudServiceName, CertificateCloudCredentials credentials) 
     { 
      this.cloudServiceName = cloudServiceName; 
      this.credentials = credentials; 
      // this.logger = logger; 
     } 

     public SchedulerOperationStatusResponse CreateJobCollection(string jobCollectionName) 
     { 
      var schedulerServiceClient = new SchedulerManagementClient(credentials); 
      var jobCollectionCreateParameters = new JobCollectionCreateParameters() 
      { 
       Label = jobCollectionName, 
       IntrinsicSettings = new JobCollectionIntrinsicSettings() 
       { 
        Plan = JobCollectionPlan.Standard, 
        Quota = new JobCollectionQuota() 
        { 
         MaxJobCount = 50, 
         MaxRecurrence = new JobCollectionMaxRecurrence() 
         { 
          Frequency = JobCollectionRecurrenceFrequency.Minute 
         } 
        } 
       } 
      }; 

      var result = schedulerServiceClient.JobCollections.Create(this.cloudServiceName, jobCollectionName, jobCollectionCreateParameters); 
      return result; 

     } 

     public JobCollectionGetResponse GetJobCollection(string jobCollectionName) 
     { 
      var schedulerServiceClient = new SchedulerManagementClient(credentials); 
      var result = schedulerServiceClient.JobCollections.Get(this.cloudServiceName, jobCollectionName); 
      return result; 
     } 

     public void CreateOrUpdate(string jobcollectionName, string jobId, DateTime startDate) 
     { 
      var schedulerClient = new SchedulerClient(this.cloudServiceName, jobcollectionName, this.credentials); 
      var job = new JobCreateOrUpdateParameters() 
      { 
       Action = new JobAction() 
       { 
        Type = JobActionType.Https, 
        Request = new JobHttpRequest() 
        { 
         Body = "customer=sandrino&command=sendnewsletter", 
         Headers = new Dictionary<string, string>() 
         { 
          { "Content-Type", "application/x-www-form-urlencoded" }, 
          { "x-something", "value123" } 
         }, 
         Method = "POST", 
         Uri = new Uri("http://postcatcher.in/catchers/527af9acfe325802000001cb"), 

        } 
       }, 

       StartTime = startDate, 
      }; 

      var result = schedulerClient.Jobs.CreateOrUpdate(jobId, job); 
     } 
    } 
} 

答えて

-1

をスニペット、仕事のコレクションの長さを取得するには何の直接的なアプローチが存在しないようです。

ジョブを作成しようとする可能性があり、クォータエラーが発生した場合は、新しいジョブコレクションを作成してそのジョブを追加できます。

+0

私はクォータの例外をキャッチして別のコレクションを作成することも考えていますが、どうしてそれらが些細なものを見逃してしまうのだろうと考えています – rahulshr

+1

残念なことに、ジョブカウントは応答の一部として提供されません。容量が残っているかどうかを判断するためのジョブ収集、または推奨されるように、ジョブの作成とエラーの処理を試みます。 –

関連する問題