当前位置: 首页 > news >正文

辽阳市建设行业培训中心网站做网站收费

辽阳市建设行业培训中心网站,做网站收费,建设农产品网络营销网站,国外平面设计欣赏网站大概流程就是job - JobQueue调度器循环获取JobQueue #xff0c;获取到的job #xff0c;再去异步获取等待可用的 worker#xff0c;取出 chan Job,将job 写入改worker的 chan Jobworker 处理任务#xff0c;先处理 case job : -w.JobChannel: 处理完成后再将 chan…大概流程就是job - JobQueue调度器循环获取JobQueue 获取到的job 再去异步获取等待可用的 worker取出 chan Job,将job 写入改worker的 chan Jobworker 处理任务先处理 case job : -w.JobChannel: 处理完成后再将 chan Job 写入到worker 里面等待调度去取调用 package mainimport (logosstrconvsynctime )var (MaxWorker intMaxQueue intJobQueue chan Job )func init() {var err errorMaxWorker, err strconv.Atoi(os.Getenv(MAX_WORKERS))if err ! nil {MaxWorker 5 // 默认值}MaxQueue, err strconv.Atoi(os.Getenv(MAX_QUEUE))if err ! nil {MaxQueue 10 // 默认值}JobQueue make(chan Job, MaxQueue) }type Payload struct {// Payload的属性 }func (p *Payload) UploadToS3() error {// 模拟上传操作log.Println(Uploading to S3)return nil }type Job struct {Payload Payload }type Worker struct {WorkerPool chan chan JobJobChannel chan Jobquit chan bool }func NewWorker(workerPool chan chan Job) Worker {return Worker{WorkerPool: workerPool,JobChannel: make(chan Job),quit: make(chan bool)} }func (w Worker) Start() {go func() {for {w.WorkerPool - w.JobChannelselect {case job : -w.JobChannel:if err : job.Payload.UploadToS3(); err ! nil {log.Printf(Error uploading to S3: %s, err)}case -w.quit:return}}}() }func (w *Worker) Stop() {go func() {w.quit - true // 通知工作线程停止}() }type Dispatcher struct {WorkerPool chan chan JobmaxWorkers intworkers []Worker // 新增用于跟踪所有工作线程quit chan bool // 用于停止dispatch循环 }func NewDispatcher(maxWorkers int) *Dispatcher {return Dispatcher{WorkerPool: make(chan chan Job, maxWorkers),maxWorkers: maxWorkers,workers: make([]Worker, 0, maxWorkers),} }func (d *Dispatcher) Runs() {for i : 0; i d.maxWorkers; i {worker : NewWorker(d.WorkerPool)d.workers append(d.workers, worker) // 跟踪新创建的工作线程worker.Start()}go d.dispatch() }func (d *Dispatcher) dispatch() {for {select {// 从JobQueue中获取一个jobcase job : -JobQueue:go func(job Job) {// 尝试获取一个可用的worker job channel阻塞直到有可用的workerjobChannel : -d.WorkerPool// 分发job到worker job channel中jobChannel - job}(job)case -d.quit:// 退出return}} }func (d *Dispatcher) StopAllWorkers() {var wg sync.WaitGroupfor _, worker : range d.workers {wg.Add(1)go func(w Worker) {w.Stop() // 停止工作线程wg.Done()}(worker)}wg.Wait() // 等待所有工作线程安全退出 }func (d *Dispatcher) Stop() {d.quit - trued.StopAllWorkers() }func main() {dispatcher : NewDispatcher(MaxWorker)dispatcher.Runs()// 模拟作业提交for i : 0; i 20; i {payload : Payload{ /* ... */ }job : Job{Payload: payload}JobQueue - job}// 等待一段时间以便可以看到工作的完成time.Sleep(10 * time.Second) }
http://www.hkea.cn/news/14472708/

相关文章:

  • 福田网站 建设深圳信科制作公司网站视频
  • 网站开发难不难可以自己做网站卖东西
  • 海报素材库网站免费网上购物商城数据库设计
  • 国际贸易网站开发o2o系统网站建设
  • 网站科技感颜色正安网站建设
  • 建设公益网站多少钱装信通装修网
  • 用电脑怎么做网站企业查询app
  • wordpress时尚英文站网站建设云主机云服务器
  • 专业自动化网站建设18款禁用黄a免费
  • 自贡网站开发重庆建设工程信息网(管理平台)
  • 新华路网站建设网页设计与制作实训总结2000字
  • 卓越高职院建设网站深圳做微信网站设计
  • 企业网站建设运营的灵魂是怎么做网站建设赚钱
  • 使用php做的学校网站wordpress开发的网站
  • 国内几个做外贸的网站iis 搭建wordpress
  • 网站 创意 方案怎么制作网站模板
  • 网站的汉化包怎么做网站备案 更名
  • 新桥做网站公司德州做网站公司
  • 网站客户端怎么做的做企业礼品的网站
  • 临沂市住房和城乡建设厅网站佛山外贸网站建设行情
  • 开发技术网站开发技术小城镇建设 网站官方
  • 盈江城乡建设局网站嘉兴网站优化
  • python建设网站实例500强企业排名一览表
  • 企业建站系统还有没有前景可言营销型网站是什么样的
  • 商丘网站制作推广做网站用的软件是什么了
  • 网站开发背景和目的flash网站开发工具
  • 高端品牌网站设计欣赏泉州网站建设 首选猴子网络
  • 网站开发合同范本大全北京wordpress开发团队
  • 做网站如何保证询盘数量网站建设计划书
  • 我要找个做网站的公司wordpress中英双语选择