TL; DR:
是否有可能轻松让工作人员决定他们可以处理哪些任务,具体取决于他们的(本地)配置和任务args
/ kwargs
?
我想到的一个快速而肮脏的解决方案是raise Reject()
所有发现自己不合适的工人,但我希望有一个更优雅的解决方案。
详细信息:
该应用程序是一个(教育)编程任务评估工具 - 可能与持续集成相当:Web应用程序接受(先前指定的)编程语言(或更好:编程环境)的源代码提交,然后需要编译和用几个测试用例执行。现在特别适用于使用GPU的高性能计算课程,编译和执行不会发生在运行Web应用程序的主机上(对于其他情况只是考虑安全原因)。
为了使管理员可以轻松配置,我希望为工作人员配置一个配置文件,其中配置了本地可用资源,编译器类型和路径等,工作人员使用它来决定是否处理任务或不。
简单地使用不同的队列并使用自定义的Router
对我来说似乎并不吸引人,因为队列的数量和配置在运行时可能会有所不同,我觉得这看起来有点混乱。
有没有一种优雅的方式来实现这样的目标?说实话,Extensions and Bootsteps上的文档没有给我很多指导。
提前感谢任何提示和指示。