Bagikan melalui


SqlWorkflowInstanceStore.RunnableInstancesDetectionPeriod Properti

Definisi

Menentukan periode waktu setelah Penyimpanan Instans Alur Kerja SQL menjalankan tugas deteksi untuk mendeteksi instans alur kerja yang dapat dijalankan atau dapat diaktifkan dalam database persistensi setelah siklus deteksi sebelumnya.

public:
 property TimeSpan RunnableInstancesDetectionPeriod { TimeSpan get(); void set(TimeSpan value); };
public TimeSpan RunnableInstancesDetectionPeriod { get; set; }
member this.RunnableInstancesDetectionPeriod : TimeSpan with get, set
Public Property RunnableInstancesDetectionPeriod As TimeSpan

Nilai Properti

Menampilkan TimeSpan.

Contoh

Sampel kode berikut menunjukkan menggunakan RunnableInstancesDetectionPeriod dalam SqlWorkflowInstanceStore.

static void Main(string[] args)
{
    // Create service host.
    WorkflowServiceHost host = new WorkflowServiceHost(new CountingWorkflow(), new Uri(hostBaseAddress));

    // Add service endpoint.
    host.AddServiceEndpoint("ICountingWorkflow", new BasicHttpBinding(), "");

    // Define SqlWorkflowInstanceStoreBehavior:
    //   Set interval to renew instance lock to 5 seconds.
    //   Set interval to check for runnable instances to 2 seconds.
    //   Instance Store does not keep instances after it is completed.
    //   Select exponential back-off algorithm when retrying to load a locked instance.
    //   Instance state information is compressed using the GZip compressing algorithm.
    SqlWorkflowInstanceStoreBehavior instanceStoreBehavior = new SqlWorkflowInstanceStoreBehavior(connectionString);
    instanceStoreBehavior.HostLockRenewalPeriod = new TimeSpan(0, 0, 5);
    instanceStoreBehavior.RunnableInstancesDetectionPeriod = new TimeSpan(0, 0, 2);
    instanceStoreBehavior.InstanceCompletionAction = InstanceCompletionAction.DeleteAll;
    instanceStoreBehavior.InstanceLockedExceptionAction = InstanceLockedExceptionAction.AggressiveRetry;
    instanceStoreBehavior.InstanceEncodingOption = InstanceEncodingOption.GZip;
    host.Description.Behaviors.Add(instanceStoreBehavior);

    // Open service host.
    host.Open();

    // Create a client that sends a message to create an instance of the workflow.
    ICountingWorkflow client = ChannelFactory<ICountingWorkflow>.CreateChannel(new BasicHttpBinding(), new EndpointAddress(hostBaseAddress));
    client.start();

    Console.WriteLine("(Press [Enter] at any time to terminate host)");
    Console.ReadLine();
    host.Close();
}

Keterangan

SqlWorkflowInstanceStore menjalankan tugas internal yang secara berkala bangun dan memeriksa apakah ada instans yang dapat dijalankan dalam database persistensi. Instans dapat dijalankan, jika tidak dalam status ditangguhkan atau status selesai dan memenuhi kondisi berikut:

  • Instans tidak terkunci dan memiliki timer tertunda yang telah kedaluwarsa.

  • Instans tidak terkunci dan statusnya adalah Menjalankan.

  • Instans memiliki kunci kedaluwarsa.

Penyimpanan Instans Alur Kerja SQL meningkatkan saat menemukan instans HasRunnableWorkflowEvent yang dapat dijalankan dalam database dan juga menemukan host alur kerja yang mampu memuat instans yang berjalan di komputer.

Ketika host alur kerja menerima peristiwa ini, host alur kerja menjalankan terhadap penyimpanan instans TryLoadRunnableWorkflowCommand untuk memuat instans ke dalam memori.

Jenis properti adalah TimeSpan dan nilainya adalah dari bentuk "hh:mm:ss". Nilai minimum adalah "00:00:01" (1 detik). Jika dihilangkan, defaultnya adalah "00:00:05" (5 detik). Parameter ini adalah parameter opsional.

Berlaku untuk