1
20150517 2014-11-08 03:39:04 +08:00 via Android
redis
|
2
way2exluren 2014-11-08 07:45:03 +08:00 via iPad
打开绝对路径的文件?
|
3
gamexg 2014-11-08 08:11:02 +08:00
绑端口?
|
4
hahastudio 2014-11-08 10:28:42 +08:00 1
既然是两个脚本,想必就是两个 python 进程了
IPC 的话基本没有简单的解决方案= = 基本上简单的就是文件和端口了吧= = 跨平台的话,像你说的 Windows 有 mutex 的接口,但是 Linux 还有 mmap 呢,不过这两个都不能算跨平台了= = 试试这个 recipe http://code.activestate.com/recipes/519626-simple-file-based-mutex-for-very-basic-ipc/ |
5
EPr2hh6LADQWqRVH 2014-11-08 10:51:37 +08:00
mkfifo
|
6
mahone3297 2014-11-08 10:57:26 +08:00
我感觉,这个问题就是,多进程间如何通信?
|
7
wibile 2014-11-08 11:13:40 +08:00
|
8
mckelvin 2014-11-08 12:21:09 +08:00 1
如果LZ只是要一个互斥锁,可以用 fcntl。和 @hahastudio 说的是同一个东西,之前没注意到他的回复于是写了一份:
https://gist.github.com/mckelvin/0b799d940409d94208fe 实现的效果是同一时间 script1.py 和 script2.py 只有一个在跑。就是LZ说的「两个进程创建一个同名的Mutex」的效果吧? 不过这么做可能会发生 script1 - script1 - script2 - script1(同一个脚本连着跑两次另一个缺没跑过)这样的执行序列. |
9
fakevam 2014-11-08 12:38:55 +08:00
尝试cffi,在python里面调用win32/posix API解决问题好了
不要用ctypes,ctypes太折磨人了,当然选第三方模块也可以 |
10
mckelvin 2014-11-08 13:33:02 +08:00 1
匿了…… 没主意到LZ说Windows http://code.activestate.com/recipes/65203/ 可能可以。
|
11
coofly OP 这应该是一种比较常见的需求吧,怎么会是这个样子……
判断平台用文件锁搞定了,谢谢各位! |