Comments (4)
@hibiken Thank you ! I have resolve the issue .
I know the reason about can't kill that process .
Asynq have own graceful shut down way , but the Gin framework don't
asynq :
// Wait for a signal to terminate.
sigs := make(chan os.Signal, 1)
signal.Notify(sigs, syscall.SIGTERM, syscall.SIGINT, syscall.SIGTSTP)
for {
sig := <-sigs
if sig == syscall.SIGTSTP {
bg.processor.stop()
bg.pinfo.SetState("stopped")
continue
}
break
}
so , if I want them work together , Gin should graceful shut down too (receive the signal to exit).
// Init router
router := routes.InitRouter()
srv := &http.Server{
Addr: ":" + setting.AppCfg.AppPort,
Handler: router,
}
/
go func() {
// service connections
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
log.Fatalf("listen: %s\n", err)
}
}()
// Wait for interrupt signal to gracefully shutdown the server
quit := make(chan os.Signal)
// kill (no param) default send syscanll.SIGTERM
// kill -2 is syscall.SIGINT
// kill -9 is syscall. SIGKILL but can"t be catch, so don't need add it
signal.Notify(quit, os.Interrupt)
<-quit
log.Println("Shutdown Server ...")
//
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
//
if err := srv.Shutdown(ctx); err != nil {
log.Fatal("Server Shutdown:", err)
}
log.Println("Server exiting")
But it is still recommend to separate the asynq workers
from asynq.
@cielu Did you manage to resolve the issue?
You probably need to build the binary first instead of using go run
.
from asynq.
Glad that you were able to resolve the issue.
Yes, intended use case for Asynq is to have its own worker binary separate from web server binary.
This was a useful feedback, maybe I can export Start
and Stop
methods for the Background
to let the user of the library manually handle shutdown. I'll consider that if more users request it.
Thanks for creating the issues!
from asynq.
Haha,Look forward to version 1.0
from asynq.
Related Issues (20)
- [FEATURE REQUEST] Support dynamic queue HOT 3
- [FEATURE REQUEST] stop usage of the internal folder
- When release v1? HOT 1
- How to mark a task as completed externally HOT 1
- Add example for redict.io and NATS jetstream HOT 1
- [FEATURE REQUEST] Add callback for task state changes
- [BUG] EnqueueContext not the original context HOT 2
- [BUG] Errors trying to connect remote worker server to scheduler HOT 1
- [FEATURE REQUEST] Support for Fixed-Length Queues in Asynq
- Order of task execution HOT 2
- [BUG] The related methods of Inspector basically lack the transmission of ctx HOT 2
- [FEATURE REQUEST] customize serializer
- Discussion/Suggestion: Decoupling `x` and `tools` packages.
- [BUG] Unable to schedule a task HOT 1
- Timing issues when running certain tests
- [FEATURE REQUEST] Settable maxArchiveSize HOT 1
- [BUG] Delete archived task fail, when task has been evicted from archived zset. HOT 2
- [FEATURE REQUEST] Unique option for run time of task
- [FEATURE REQUEST] aggregation task optimization
- handler not found for task "ping:worker"
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from asynq.