内存中的蟒蛇卡游戏/没有数据库

时间:2013-05-31 16:26:01

标签: python uwsgi

我想在服务器上使用uwsgi / nginx运行python卡游戏。在互联网上学习uwsgi很痛苦,因此我的问题在这里:

如何在服务器上运行python应用程序并在有些请求进入时读取/更新我的对象?我不想在数据库表中建模我的游戏。这甚至可能吗?

所有教程都指向此示例文件

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return "Hello world!"

但是在应用程序函数内部,我无法引用任何先前定义的变量。 我不想要的是:

i = 0
def application(env, start_response):
    i = i + 1
    start_response('200 OK', [('Content-Type','text/html')])
    return "Counter: " + str(i)

结果是每次请求进入时都会增加。

我写了数百行游戏,假设我能够做到这一点......但我已经碰壁了。任何帮助都会救我。

2 个答案:

答案 0 :(得分:1)

使用前需要global i。但是这可能会或可能不会按预期工作,具体取决于您的uwsgi配置 - 您是否有一个流程池,使用线程或启用重启? global技巧只有在您只运行一个进程且只在请求之间无法回收时才会起作用。并且这个过程需要自己产生 - 像paste之类的东西可能更容易配置为按照你想要的方式工作。

答案 1 :(得分:0)

我相信每个请求处理程序都是一个单独的工作进程。您可以使用共享内存区域:

https://github.com/unbit/uwsgi-docs/blob/master/SharedArea.rst