代码之家  ›  专栏  ›  技术社区  ›  MKF

需要创建一个队列,以便一次为一个人运行流程[关闭]

  •  -1
  • MKF  · 技术社区  · 8 年前

    我甚至不知道从哪里开始研究这个话题(比如要使用的关键词),所以我希望有人能帮我找到正确的方向。

    我有一个。NET MVC应用程序。在这个应用程序中,用户上传一个带有数据层的zip文件,该数据层被用作应用程序调用的python脚本的输入。由于数据库游标的性质(如果有人熟悉的话,这是一个ArcGIS企业地理数据库),每次只有一个人可以运行python脚本,因为游标对数据库进行独占锁定(这是无法避免的)。两个人试图同时使用这个web应用程序的机会非常罕见,我需要将这些人放入队列中,以便python脚本为第一个人完成,然后开始下一个人的数据集。我从哪里开始,或者你能给我什么词来开始制定关于这个主题的搜索查询?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Teoman shipahi    8 年前

    也许会有更多特定于技术的解决方案,但从我的角度来看,你可以使用 样式处理。

    它可以像创建一个表一样简单,在那里排队(插入)新的请求,并在出现时进行处理(出列)。或者,使用更高级别的框架,如 RabbitMQ

    • 在存储库中上载
    • 在队列中插入新记录
    • 从队列中获取第一项
    • 过程

    若第二个人上传新文件,你们会检查队列表,会有标志最后一个项目正在处理,然后你们可以让客户端知道,脚本已排队并将被处理。

    显然,生成客户端的唯一id是值得的,如果同时有多个上传,那么您将不会混合优先级和脚本。