iT邦幫忙

2022 iThome 鐵人賽

DAY 29
0
Software Development

Backend Developer roadmap study系列 第 29

[day29] Mitigation Strategies

  • 分享至 

  • xImage
  •  

uwsgi

python套件中用來管理後端service的套件,在django中直接使用runserver的話預設會使用wsgi tool去開啟後端service。
uwsgi其支援graceful reload的功能,為開發者在修改代碼後重啟uwsgi service,不會中斷後端正在運行中的管道,等到後端管道全部執行完畢後,才會重啟服務。

使用方式

先下載uwsgi tool

$ pip3 install uwsgi

在django的project下新增uwsgi.ini檔案,裡面寫入

# deploy it on HTTP port 10010
[uwsgi]
http = :10010  #serve protocol
module = visual_inference_sdk_backend.wsgi:application  #the front is django folder name
master = True
processes = 1
threads = 1
vacuum = True
pidfile = /tmp/dj3-master.pid
master-fifo = /tmp/uwsgi_api.fifo
lazy-apps = true  #graceful restart lazy-apps mode

使用下列commamd去執行django service服務

$ uwsgi --ini uwsgi.ini

用下列command去重啟django

$ echo c > /tmp/uwsgi_api.fifo

Throttle

情境為在前端中當使用者連續觸發同個function,會導致後端服務重複接收資訊,因此在前端function的內容中加入計時器功能,紀錄最後一次執行此function的時間,下一次執行時就去相減避免在一定時間內重複執行數次function,例如: leetcode的run test以及submit都有此機制

參考


上一篇
[day28] Web Server
下一篇
[day30] Horizontal Scaling/Vertical Scaling
系列文
Backend Developer roadmap study30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言