使用外部python插件运行异步循环引擎



我安装了一个在帝王模式下运行的uWSGI。Vasals使用不同的python版本,所以我不能在uWSGI二进制文件中嵌入python插件。

话虽如此,我想在一个附庸中使用异步循环引擎,但我不知道如何运行未嵌入的异步插件和greenlet插件。


到目前为止我尝试了什么:

  • 在uWSGI中嵌入asyncio和greenlet,使用:

     CFLAGS="-I/usr/local/include/python3.4" make PYTHON=python3.4 asyncio
    

    构建uWSGI。但这也会嵌入python插件,我不想要它

  • 使用构建asyncio和uWSGI作为外部插件

     PYTHON=python3.4 ./uwsgi --build-plugin "plugins/greenlet greenlet"
     PYTHON=python3.4 ./uwsgi --build-plugin "plugins/greenlet greenlet"
    

    构建插件,但插件将无法加载:

    /usr/local/lib/uwsgi/asyncio_plugin.so:未定义符号:up
    /usr/local/lib/uwsgi/greenlet_plugin.so:未定义符号:向上

    日志中。

    //编辑
    我已经发现,在设置asyncio和greenlet之前必须启用python插件,所以错误不再发生,但greenlet不起作用,当前的greenlet中没有父级。

我还能做什么?我打赌在python3.4插件中嵌入asyncio和greenlet会起作用,但我不知道如何做到,也不知道这是否可能。

目前我使用的是内置插件的second emperor,但由于平台的限制,我不能再使用该解决方案了。

我认为您应该遵循此处概述的方法:https://uwsgi-docs.readthedocs.io/en/latest/WSGIquickstart.html#bonus-同一uwsgi二进制的多个python版本

基本上:

  • 构建一个没有Python插件的核心uwsgi二进制文件(供皇帝使用):make PROFILE=nolang
  • 然后为您使用的每个python版本(针对附庸)构建插件,并将每个附庸配置为使用正确的插件

相关内容

  • 没有找到相关文章

最新更新