色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何讓Python和Go互相調度

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-11-02 11:24 ? 次閱讀

我們曾經研究過如何讓Python和Go互相調度,當時發現,將Go語言寫的模塊打包成動態鏈接庫,就能在Python中進行調度:

優劣互補! Python+Go結合開發的探討

Go的優勢很明顯,從1億減到1,在我的設備上測試,用Go運行只需要50ms,Python可能需要接近100倍的時間。

但是,這種寫法也有缺點:實在太麻煩了,大大增加了整個項目的耦合性。

那Python中有沒有辦法不通過打包成動態鏈接庫的方法,用Python調度Go的任務呢?答案是Go celery.

https://github.com/gocelery/gocelery

我們可以用Go寫一個計算密集型任務的Worker,然后用Python的Celery beat來調度這個Worker,下面給大家演示一下:

1.編寫Go Worker

最好是將計算密集型的任務改造成Go語言版的,這樣收益才能最大化。

比如這里,我使用的是上回從1億減到1的老梗。

PS,別被下面這段代碼嚇到了,其實大部分是可以去掉的配置項,核心代碼就幾行。

圖片

輸入命令:

go run main.go

即可運行該worker

2.編寫Python客戶端

圖片

每5秒調度一次1億減到1,不過不跑Python worker. 由于Go Worker在運行,這里的minus會被Go Worker消費。

另外請注意,這里的minus函數實際上只是為了能被識別到而編寫的,其內容毫無意義,直接寫個pass都沒問題(因為實際上是Go Worker在消費)。

編寫完后,針對go_tasks模塊啟動beat:

celery -A go_tasks beat

此時,調度器就會調度Go Worker執行任務:

圖片

圖片

可以看到,我們成功用Python的Celery Beat調度了Go寫的Worker!可喜可賀。

接下來可以看看如果單純用Python的Worker做這樣的計算是有多耗時:

圖片

啟動worker:

celery worker -A python_tasks -l info --pool=eventlet

啟動beat調度器:

celery -A python_tasks beat

結果如下:

圖片

可以看到,Python從1億減到1平均需要5.2秒左右的時間,和Go版相差了100倍左右。

如果我們將調度器的頻率提高到每秒計算1次,Python版的Worker,其任務隊列一定會堵塞,因為Worker消費能力不夠強大。相比之下,Go版的Worker可就非常給力了。

因此,如果你的項目中有這種計算密集型的任務,可以嘗試將其提取成Go版本試試,說不定有驚喜呢。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Go
    Go
    +關注

    關注

    0

    文章

    45

    瀏覽量

    12363
  • python
    +關注

    關注

    56

    文章

    4825

    瀏覽量

    86343
  • Worker
    +關注

    關注

    0

    文章

    8

    瀏覽量

    6560
  • 動態鏈接庫
    +關注

    關注

    0

    文章

    11

    瀏覽量

    7131
收藏 0人收藏

    評論

    相關推薦
    熱點推薦

    Go語言開發有什么優勢?怎么學?

    。  1. 部署簡單。Go 編譯生成的是一個靜態可執行文件,除了glibc 外沒有其他外部依賴。這部署變得異常方便:目標機器上只需要一個基礎的系統和必要的管理、監控工具,完全不需要操心應用所需的各種包
    發表于 12-19 16:08

    go語言能做什么工作?

    Go語言主要用作服務器端開發,其定位是用來開發“大型軟件”的,適合于很多程序員一起開發大型軟件,并且開發周期長,支持云計算的網絡服務。Go語言能夠程序員快速開發,并且在軟件不斷的增長過程中,它能
    發表于 03-22 15:03

    python2和python3是如何互相切換的

    python2和python3互相切換在本地有兩個Python的版本:默認使用Python2.7:可以這樣查看當前版本:如果要使用
    發表于 07-12 07:53

    Python 轉向 Go語言的9大原因和3大缺點

    轉用一門新語言通常是一項大決策,尤其是當你的團隊成員中只有一個使用過它時。今年 Stream 團隊的主要編程語言從 Python 轉向了 Go。本文解釋了其背后的九大原因以及如何做好這一轉換。
    發表于 06-17 07:40 ?6905次閱讀

    GoPython,Erlang的語言對比分析和Go編程示例概述

    本文對GoPython、Erlang做了一些有趣的分析對比,相信大家能從中感受到Go語言的強大和與眾不同。
    的頭像 發表于 07-21 09:52 ?7985次閱讀
    <b class='flag-5'>Go</b>和<b class='flag-5'>Python</b>,Erlang的語言對比分析和<b class='flag-5'>Go</b>編程示例概述

    Go語言其實有很多優良特性,很多時候都可以代替Python

    Go 要想撼動編程界的常青樹 Java 二十多年的地位無疑難度頗大。據 HackerRank 數據顯示,2018 年,Java 在開發者最受歡迎的編程語言排行榜中仍然排名第 2,Python 排名第 4,Go 排名第 13,
    的頭像 發表于 02-13 10:01 ?4929次閱讀

    golang的調度模型-GPM 模型的源碼結構

    【導讀】GMP 模型是 go 語言輕量快速高效的重要調度模型,本文從 GMP 源碼出發直觀地解析了這一模型。 這篇文章就來看看 golang 的調度模型-GPM 模型的源碼結構。
    的頭像 發表于 07-06 11:55 ?2442次閱讀

    詳解剖析Go語言調度模型的設計

    golang的MPG調度模型是保障Go語言效率高的一個重要特性,本文詳細介紹了Go語言調度模型的設計。 前言 Please remember that at the end of th
    的頭像 發表于 07-26 10:12 ?2342次閱讀
    詳解剖析<b class='flag-5'>Go</b>語言<b class='flag-5'>調度</b>模型的設計

    go項目怎么docker鏡像體積減小

    【導讀】go 項目怎么 docker 鏡像體積減小?本文做了詳細介紹。
    的頭像 發表于 06-12 15:07 ?1590次閱讀

    go項目怎么docker鏡像體積減小

    go 項目怎么 docker 鏡像體積減小?本文做了詳細介紹。
    的頭像 發表于 06-23 10:49 ?1383次閱讀

    Go/Rust挑戰Java/Python地位

    編程語言方面,Java 和 Python 仍然遙遙領先,并且分別微小增長了 1.7% 和 3.4%;圍繞 Go (增長 20%) 和 Rust (增長 22%) 的興趣則大幅增加。報告稱,如果這種
    的頭像 發表于 03-06 10:19 ?885次閱讀

    Schedule:簡單實用的 Python 周期任務調度工具

    如果你想在Linux服務器上周期性地執行某個 Python 腳本,最出名的選擇應該是 Crontab 腳本,但是 Crontab 具有以下缺點: ** 1.不方便執行 秒級的任務
    的頭像 發表于 10-30 11:18 ?882次閱讀

    Crontab:簡單實用的Python 周期任務調度工具

    如果你想周期性地執行某個 Python 腳本,最出名的選擇應該是 Crontab 腳本,但是 Crontab 具有以下缺點: 1.不方便執行 秒級任務 。 2.當需要執行的定時任務有上百個的時候
    的頭像 發表于 11-01 09:40 ?980次閱讀

    Go在單線程計算性能上的優勢

    ,將計算和保存的過程保存在本地的redis緩存中,然后使用Celery來調度這些任務。 問題在于,從這些網址中獲取數據的步驟,寫在Go Worker里是否合適?Go進行網絡請求是否比Pytho
    的頭像 發表于 11-02 11:16 ?689次閱讀
    <b class='flag-5'>Go</b>在單線程計算性能上的優勢

    Go語言比Python強多少

    1.都說Go語言性能非常強大,那么到底比Python強多少? 為了比較Go語言和Python語言在單線程性能上的差距,我們可以做一個簡單實驗,從1億減到1:
    的頭像 發表于 11-02 14:05 ?851次閱讀
    <b class='flag-5'>Go</b>語言比<b class='flag-5'>Python</b>強多少
    主站蜘蛛池模板: 一本道手机无码在线看 | 糙汉顶弄抽插HHHH | 乱码国产丰满人妻WWW | 国产激情文学 | 久久频这里精品99香蕉久网址 | 免费a毛片 | 九九热这里只有精品2 | 啊灬啊灬啊灬快高潮视频 | 欧美性xxx极品 | 精品久久久久久久久免费影院 | china野外18:19 | 久久国产亚洲精品AV麻豆 | 超清无码波多野吉衣与黑人 | 日韩精品无码久久一区二区三 | 亚洲国产精品久久又爽黄A片 | 狠狠人妻久久久久久综合九色 | 久拍国产在线观看 | 月夜直播免费观看全集 | 日操夜操天天操 | 黄色aa大片| 国产99r视频精品免费观看 | 亚洲色欲色欲无码AV | 国产睡熟迷奷系列网站 | 快播欧美大片 | 国产一卡 二卡三卡四卡无卡乱码视频 | 久久人妻无码毛片A片麻豆 久久人妻熟女中文字幕AV蜜芽 | 男人电影天堂手机 | 在线播放国产视频 | 97精品少妇偷拍AV | 色多多污污在线观看网站 | 无码区国产区在线播放 | 小柔的性放荡羞辱日记动漫 | 亚洲高清无码在线 视频 | 国产成人久久AV免费看澳门 | JAVAPARSER丰满白老师 | 国产人妻人伦精品久久无码 | 欧美视频精品一区二区三区 | 久久草这里全是精品香蕉频线观 | 在线国内自拍精品视频 | 亚欧日韩毛片在线看免费网站 | 一个人在线观看免费高清视频 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品