1
poke707 OP 上述场景说详细点是,微信的access token,每2小时更新一次
|
2
est 2014-01-15 21:57:23 +08:00 1
asp那个Application("key")也只是单机IIS可用的吧。你感受下。正确的姿势是写入文件或者Berkeley DB或者redis或者其他什么持久化方案都可以。
|
5
est 2014-01-15 22:11:51 +08:00 1
|
7
poke707 OP 多谢楼上,看来问题可以解决了,但是我还是有些道理不明白:
总结来说,是否跑python的服务器(或者是进程?)不出错不重启,里面的全局or静态变量都还在? |
10
9hills 2014-01-15 23:57:22 +08:00 1
@poke707 恩,如果是单进程多线程的模型,全局变量是一直在的,而且各个线程之间可共享(注意加锁哦,threading.Lock。要不怎么算全局变量
但是如果你的业务是多进程模型,比如nginx+多个tornado实例。。那就老老实实用内存db吧,比如redis之类。一般来说线上业务都是多进程模型,毕竟有GIL啦,服务器又都是多核的。。 |
11
poke707 OP 大家真热情啊:)
我在后面的楼的追问其实撇开业务了,纯粹的看看单个python进程,我还以为会被GC掉呢 实际使用中我会注意实际情况的:) |
12
Livid MOD 大部分的 Python 框架,都是启动一个进程,然后每次处理一个请求的时候,执行预先定义好的一个函数。这个函数可以访问这个进程的数据。
为了充分利用多个 CPU,你可以启动多个进程。 为了在进程之间共享一些可能不需要持久化的数据,那么比较好比较快的做法就是 Redis。V2EX 就是这么做的。 |
13
julyclyde 2014-01-16 10:08:54 +08:00
ASP的application确实方便也确实难以扩展,因为IIS是多线程服务器
大规模web应用程序的application域一般都是依靠序列化对象和外部存储机制来实现的 某些java应用服务器本身支持cluster可能也可以支持application |