Open pengwk opened 5 years ago
关联的组件开源项目
怎么启动,怎么关闭,怎么监控?
用到了哪些设计模式?
没有中心化的东西怎么相互确保还活着? worker 具体指什么?一个进程?如果是,究竟是一个怎样的进程?
https://docs.celeryproject.org/en/latest/userguide/workers.html
https://linux.die.net/man/2/getrusage
System usage statistics. The fields available may be different on your platform.
From getrusage(2):
stime 系统调用时间
Time spent in operating system code on behalf of this process.
utime 花在用户指令上的时间
Time spent executing user instructions.
maxrss 这个进程最大的驻留内存
The maximum resident size used by this process (in kilobytes).
idrss 用于保存数据的不共享内存大小
Amount of non-shared memory used for data (in kilobytes times ticks of execution)
isrss 不共享用于堆栈的内存大小
Amount of non-shared memory used for stack space (in kilobytes times ticks of execution)
ixrss 与其他内存共享的内存数量。
Amount of memory shared with other processes (in kilobytes times ticks of execution).
inblock 这个进程读磁盘文件的次数
Number of times the file system had to read from the disk on behalf of this process.
oublock 这个进程写磁盘的次数
Number of times the file system has to write to disk on behalf of this process.
majflt I/O 时出现的页错误次数
Number of page faults that were serviced by doing I/O.
minflt 没有 I/O 时的页错误数
Number of page faults that were serviced without doing I/O.
msgrcv 收到的 IPC 消息数
Number of IPC messages received.
msgsnd 发送的 IPC 消息数
Number of IPC messages sent.
nvcsw 自愿发起 context switch 次数
Number of times this process voluntarily invoked a context switch.
nivcsw 非自愿发起 context switch 次数
Number of times an involuntary context switch took place.
nsignals 收到的信号数
Number of signals received.
nswap 进程完全交换到磁盘的次数
The number of times this process was swapped entirely out of memory.
一个远程控制指令是怎么被执行的?
为什么类变量和实例变量这样用?
drain 排空耗尽
http://xargin.com/redis-protocal/ https://redis.io/topics/protocol
[pid 17740] sendto(29, "*1\r\n$5\r\nMULTI\r\n*3\r\n$4\r\nZREM\r\n$13\r\nunacked_index\r\n$36\r\ne6bad363-8d7c-4a02-8a8e-2a4cc58dfdf7\r\n*3\r\n$4\r\nHDEL\r\n$7\r\nunacked\r\n$36\r\ne6bad363-8d7c-4a02-8a8e-2a4cc58dfdf7\r\n*1\r\n$4\r\nEXEC\r\n", 176, 0, NULL, 0) = 176
使用了那些设计模式?
DAG directed acyclic map 有向无环图
https://zh.wikipedia.org/wiki/%E6%9C%89%E5%90%91%E6%97%A0%E7%8E%AF%E5%9B%BE
default queue (named “celery” for historical reasons).
The non-AMQP backends like Redis or SQS don’t support exchanges, so they require the exchange to have the same name as the queue. Using this design ensures it will work for them as well.
RedBeat is a Celery Beat Scheduler that stores the scheduled tasks and runtime metadata in Redis.
https://github.com/cameronmaske/celery-once
[node-celery: Celery client for Node.js]https://github.com/mher/node-celery
node-celery-ts: TypeScript Celery client for Node
gocelery: Celery Distributed Task Queue in Go
问题:
https://github.com/celery/celery https://www.fullstackpython.com/celery.html