運(yùn)行速度快可靠的后臺(tái)任務(wù)執(zhí)行系統(tǒng)
大家好,又見(jiàn)面了,我是 GitHub 精選君!
背景介紹
在計(jì)算機(jī)編程和服務(wù)器管理領(lǐng)域中,我們經(jīng)常面臨需要處理大量后臺(tái)運(yùn)行任務(wù)的問(wèn)題。當(dāng)我們的應(yīng)用程序需要執(zhí)行一些耗時(shí)較長(zhǎng)、可能失敗的操作時(shí),如電子郵件通知、數(shù)據(jù)同步、日志更新等,我們通常會(huì)把這些任務(wù)放在后臺(tái)運(yùn)行,以便它們不會(huì)阻塞主線程,影響用戶的體驗(yàn)。然而,編寫這樣的后臺(tái)任務(wù)并非易事,我們需要確保它們能夠快速而可靠地運(yùn)行,而且必須能夠處理各種可能的故障。這就需要我們有一個(gè)強(qiáng)大、可靠且高效的后臺(tái)任務(wù)運(yùn)行環(huán)境,那應(yīng)該如何更好的解決?
今天要給大家推薦一個(gè) GitHub 開源項(xiàng)目 riverqueue/river,該項(xiàng)目在 GitHub 有超過(guò) 1.6k Star,用一句話介紹該項(xiàng)目就是:Fast and reliable background jobs in Go。
項(xiàng)目介紹
River 是使用 Go 語(yǔ)言編寫的一個(gè)開源項(xiàng)目,主要解決的就是后臺(tái)任務(wù)管理的問(wèn)題。它在運(yùn)行速度和可靠性方面都有出色表現(xiàn)。River 項(xiàng)目具有以下主要功能:
1、可以通過(guò)進(jìn)程管理來(lái)控制任務(wù)的運(yùn)行。你只需要將函數(shù)或指令發(fā)送給 River,它就可以創(chuàng)建一個(gè)新的進(jìn)程來(lái)執(zhí)行這個(gè)任務(wù)。
2、提供現(xiàn)成的 API,開發(fā)者可以直接調(diào)用 River 的方法來(lái)創(chuàng)建后臺(tái)任務(wù),非常方便。
如何使用
首先需要有一個(gè) PostgreSQL 數(shù)據(jù)庫(kù),以及相應(yīng)的數(shù)據(jù)庫(kù)驅(qū)動(dòng)。然后通過(guò)以下命令,你可以快速安裝 River:
go get github.com/riverqueue/river
go get github.com/riverqueue/river/riverdriver/riverpgxv5
創(chuàng)建新的任務(wù)提交到 River 調(diào)度執(zhí)行,只需要如下代碼:
_, err = riverClient.InsertTx(ctx, tx, SortArgs{
Strings: []string{
"whale", "tiger", "bear",
},
}, nil)
if err != nil {
panic(err)
}
以下是該項(xiàng)目 Star 趨勢(shì)圖(代表項(xiàng)目的活躍程度):

更多項(xiàng)目詳情請(qǐng)查看如下鏈接。
開源項(xiàng)目地址:https://github.com/riverqueue/river
開源項(xiàng)目作者:riverqueue
開源協(xié)議:Mozilla Public License 2.0
關(guān)注我們,一起探索有意思的開源項(xiàng)目。
點(diǎn)擊如下卡片后臺(tái)回復(fù):加群,與技術(shù)極客們一起交流人工智能、開源項(xiàng)目,一起成長(zhǎng)。如果你正在尋求開源項(xiàng)目推廣、DevOps、AIGC 大模型、軟件開發(fā)等領(lǐng)域的付費(fèi)服務(wù),可參考推文了解詳情。
