支持edx电子商务服务运营的芹菜任务

edx-ecommerce-worker的Python项目详细描述


本文中包含的芹菜任务用于实现异步订单履行和需要异步执行许多小的、常见操作的其他功能。

先决条件

  • python 2.7.x(未使用python 3.x进行测试)
  • 芹菜3.1.x
  • 拉比特mq 3.5.x

开始

开发和运行此应用程序所需的大多数命令都可以在包含的makefile中找到。这些指令假定edX ecommerce service和lms之间的工作集成,并在电子商务服务上配置异步实现。

要开始,请创建一个新的虚拟环境并安装包含的要求。

$ make requirements

此项目使用Celery异步执行任务,例如订单履行期间所需的任务。芹菜需要一个发送和接收消息的解决方案,这些消息通常以称为消息代理的单独服务的形式出现。此项目使用RabbitMQ作为消息代理。在OS X上,使用自制程序安装它。

$ brew install rabbitmq

默认情况下,大多数操作系统不允许为消息代理打开足够的文件。rabbitmq的文档表明,对于大多数开发工作负载来说,至少允许4096个文件描述符就足够了。检查当前进程中文件描述符的数量限制。

$ ulimit -n

如果需要调整,请运行:

$ ulimit -n 4096

接下来,启动rabbitmq服务器。

$ rabbitmq-server

在另一个过程中,启动芹菜工人。

$ make worker

在第三个过程中,启动电子商务服务。为了使任务对电子商务工作者可见,电子商务服务和电子商务工作者必须共享芹菜的BROKER_URL设置值。

最后,在第四个过程中,启动lms。此时,如果您尝试注册由电子商务服务支持的课程,则电子商务工作人员将异步处理注册。

如果您被迫提前关闭芹菜工人,任务可能会留在队列中。要清除它们,可以重置rabbitmq。

$ rabbitmqctl stop_app $ rabbitmqctl reset $ rabbitmqctl start_app

许可证

除非另有说明,否则此存储库中的代码是根据agpl授权的。有关详细信息,请参见LICENSE.txt

如何贡献

欢迎捐款。详情请阅读How To Contribute。尽管它是用edx-platform编写的,但是对于开放的edx代码,通常应该遵循这些指导原则。

报告安全问题

请不要公开报告安全问题。请发电子邮件给security@edx.org

邮件列表和IRC频道

您可以在edx-code Google Group或freenode上的#edx-codeirc通道中讨论此代码。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在glassfish3服务器上上载应用程序文件(ords.war)时发生java部署错误   java如何更改Elasticsearch上的别名值?   java如何使用Xpath读取更多XSD模式?   java使用jstl在两个jsp之间访问值   java将控制台输出转换为PDF文件   java在循环后没有得到任何结果,几乎完成   java运行的程序无法适应变化   java 安卓 RecyclerView添加新项目将回收移至列表顶部   将字符串转换为日期时的java偏移量   导入包的java问题   java gl。glScalef()隐藏gl。glDrawArrays()绘图   java在读取URL时没有协议异常   javascript Nashorn错误与某些函数有关