zoukankan      html  css  js  c++  java
  • 学习<>之 WF程序队列(摘录)

    1.任何需要外部实体输入的活动,都必须解决两方面问题

        第一:必须要让外部实体知道该活动需要输入消息

        第二:当消息到达时,接收通知

     这种简单的方式是片段式执行的核心,要支持这种方式,最基本的要求是活动必须能接收输入,即使是在WF程序实例处在空闲状态,甚至是存储在类似SQL Server数据库这样的持久化存储设备中时,也要能够接收输入.当外部输入到达时,WF程序实例必须能够恢复执行

    2.尽管各种通信技术(比如:WCF,ASMX)可以构建在WF之上,但是如果要将数据发送到已经钝化的WF程序实例,必须使用WorkflowQueuingService

    3.WF程序队列本质上是一个具有名称的占位符,无论活动所在的WF程序实例是否在内存中,活动都可以从这里接收数据,WF程序队列不同于WF程序实例的调度器队列,后者是由运行时管理的,可以把WF程序队列看成一个数据结构,这个数据结构保存了显示创建的书签的负载(这个负载将会传递到书签的物理恢复点).WF程序队列是一个可以寻址的占位点,外部实体可以将数据发送到这里.

    4.在多个WF程序实例中,可能使用了相同的WF程序队列名称,我们可以执行任意数量的WF程序实例,而不会有任何问题,因为数据总是通过WorkflowInstance.EnqueueItem方法将数据发送到指定的实例中,所以不会造成任何歧义,也就是说,WF程序队列不在WF程序实例间共享,这使我们可以把WF程序队列的逻辑地址当成WorkflowInstance.InstanceId,  后者标出WF程序实例.

    5.WF程序队列扮演着外部实体和WF程序实例中活动之间通信管道的角色,WF程序实例的外部代码可以通过EnqueueItem方法,将数据送入WF程序队列中.当一个队列项进入WF程序队列时,就会触发QueueItemAvailable事件,如果活动订阅这个事件时,WF程序队列中已经存在队列项,就会立即触发QueueItemAvailable事件

    测试WF程序队列的实例,可以点击这里下载 (开发工具vs2008)

    运行结果:

  • 相关阅读:
    表格行内编辑增删改查
    rpc远程调用开发
    gdb调试程序
    Makefile文件编写
    CentOS6.6源码编译升级GCC至4.8.2
    linux 下C语言编程库文件处理与Makefile编写
    laravel队列-让守护进程处理耗时任务
    回顾javase点滴
    服务端生成word并压缩打包下载
    pytest框架插件(用例依赖、多重校验、执行顺序、失败重跑、重复执行、标记)
  • 原文地址:https://www.cnblogs.com/goyier/p/1312696.html
Copyright © 2011-2022 走看看