odoo 分布式快速更新

2022-09-12 15:45:22 字數 1704 閱讀 2332

如果odoo 服務太多的話,乙個乙個的重啟會比較麻煩

寫乙個python指令碼來批量重啟:

import paramiko

import configparser

def get_conf():

cf = configparser.configparser()

cf.read('./data/server.conf')

sections = cf.sections()

list_dict_conf =

for opt in sections:

dev_item = cf.items(opt)

return list_dict_conf

class odooserver(object):

def __init__(self, hostname, port, username, password, command=''):

# 建立乙個sshclient物件

self.ssh = paramiko.sshclient()

# 允許將信任的主機自動加入到host_allow 列表,此方法必須放在connect方法的前面

self.ssh.set_missing_host_key_policy(paramiko.autoaddpolicy())

# 呼叫connect方法連線伺服器

self.ssh.connect(hostname=hostname, port=port, username=username, password=password)

self.command = command

def exec_command(self):

if not isinstance(self.command, str):

return none

stdin, stdout, stderr = self.ssh.exec_command(self.command)

if stdout:

print('return message:', stdout.read().decode())

if stderr:

print('error message:', stderr.read().decode())

self.ssh.close()

if __name__ == '__main__':

list_config = get_conf()

for dict_config in list_config:

print('restart server:', dict_config)

server = odooserver(**dict_config)

server.exec_command()

[odoo12_dev1]

hostname=localhost

port = 22

username=test

password=password

command = ./reload_supervisor_odoo.sh

[odoo12_dev2]

hostname=localhost

port = 22

username=test

password=password

command = ./reload_supervisor_odoo.sh

分布式 zookeeper快速上手

zookeeper中對使用者的資料採用kv形式儲存 只是zk有點特別 key 是以路徑的形式表示的,那就以為著,各key之間有父子關係,比如 是頂層key 使用者建的key只能在 下作為子節點,比如建乙個key aa 這個key可以帶value資料 也可以建乙個key bb 也可以建key aa x...

批量更新時更新分布式ID

很久沒更新了,慚愧,今日剛好又學了一新招,特此記錄。以前寫過一篇文章,分布式環境下建立唯一id 在那個時候,最終定下來的id組成結構是 time sequence index 32 19 13 頭32位是時間戳 中間19位是遞增序號,每秒重置 最後13位是固定的序號 由於原來只考慮了insert,u...

分布式 分布式鎖

本質是利用redis的setnx 方法的特性來加鎖,setnx 即key不存在則設定key,否則直接返回false,要求在分布式系統中使用同乙個redis服務,以下提供兩種解決方案 1 直接使用redistemplate 這其實並不能完全保證高併發下的安全問題,因為可能在鎖過期之後該執行緒尚未執行完...