系統設計: 處理服務讀取多個任務遇到的問題 (Go 語言)

  Рет қаралды 1,776

Bo-Yi Wu

Bo-Yi Wu

Күн бұрын

Пікірлер: 5
@zeralux100
@zeralux100 2 жыл бұрын
如果agentservice請求任務方式是批處理的概念呢? 一次請求100, 200個task交給10個worker消耗 , task消耗完了&有空閒的work , 則再情求taskservice 新的一批task
@appleboy46
@appleboy46 2 жыл бұрын
如果一次請求 100 個,給 10 個 worker 消耗,會遇到一個問題,假如前 10 個 task 每個 task 都需要長時間(一小時才能處理完),這樣後面 90 個 Task 都在等,這解法不是很好。
@nengliu5813
@nengliu5813 2 жыл бұрын
你这代码写得,减少链接了,但是也减少处理任务的性能了,你创建了5个工人干活,但是只有一把钥匙,5个人谁抢到这把钥匙,谁去干活,其他4个人就干等着(select阻塞), 为啥不写简单一点呢,一个主进程取5条task,再根据实际取到的task数目(假如是n), 然后再开n个goroutine去处理这个取到的n条待处理的任务呢(n
@appleboy46
@appleboy46 2 жыл бұрын
你可以嘗試看看代碼,目前是沒有 select 阻塞。也或者是你可以提供一下其他方案的寫法。另外一次取五條 Task,還需要考率確保其他機器 Worker 不會拿到重複的 Task。
@ggen6580
@ggen6580 Жыл бұрын
@@appleboy46 新的任务进入,还没进入task状态时,可以都堆积在一个cache pool里面,cache去做任务的去重,这样后续的worker就不会拿到重复的task了。 task manager 去处理task任务,保持上限,入cache的都丢在一个channel中,task manager处理完毕一个就接收下一个,这样简单得多吧;太多loop 太绕了。
Transformer论文逐段精读
1:27:05
跟李沐学AI
Рет қаралды 440 М.
coco在求救? #小丑 #天使 #shorts
00:29
好人小丑
Рет қаралды 120 МЛН
Quilt Challenge, No Skills, Just Luck#Funnyfamily #Partygames #Funny
00:32
Family Games Media
Рет қаралды 55 МЛН
[微服務] 什麼是 gRPC,架構上為什麼要使用 gRPC
12:59
搭建私有大模型原来这么简单|第53期
11:03
青衣极客 bluegeek
Рет қаралды 7 М.
用 ChatGPT 幫忙整理 Commit 資訊及做 Code 代碼審核
17:12
How To Speak Fluently In English About Almost Anything
1:49:55
EnglishAnyone
Рет қаралды 3,3 МЛН
Google I/O 2012 - Go Concurrency Patterns
51:27
Google for Developers
Рет қаралды 826 М.
AI Is Making You An Illiterate Programmer
27:22
ThePrimeTime
Рет қаралды 207 М.