mirror of
https://github.com/aljazceru/crawler_v2.git
synced 2025-12-17 07:24:21 +01:00
extracted handle signals
This commit is contained in:
@@ -9,10 +9,8 @@ import (
|
||||
"github/pippellia-btc/crawler/pkg/redb"
|
||||
"log"
|
||||
"os"
|
||||
"os/signal"
|
||||
"runtime"
|
||||
"sync"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"github.com/nbd-wtf/go-nostr"
|
||||
@@ -23,7 +21,7 @@ import (
|
||||
func main() {
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
go handleSignals(cancel)
|
||||
go pipe.HandleSignals(cancel)
|
||||
|
||||
config, err := config.Load()
|
||||
if err != nil {
|
||||
@@ -102,16 +100,6 @@ func main() {
|
||||
consumers.Wait()
|
||||
}
|
||||
|
||||
// handleSignals listens for OS signals and triggers context cancellation.
|
||||
func handleSignals(cancel context.CancelFunc) {
|
||||
signals := make(chan os.Signal, 1)
|
||||
signal.Notify(signals, syscall.SIGINT, syscall.SIGTERM)
|
||||
<-signals
|
||||
|
||||
log.Println(" Signal received. Shutting down...")
|
||||
cancel()
|
||||
}
|
||||
|
||||
// enqueue things into the specified channel or return an error if full.
|
||||
func enqueue[T any](queue chan T) func(t T) error {
|
||||
return func(t T) error {
|
||||
|
||||
@@ -9,10 +9,8 @@ import (
|
||||
"github/pippellia-btc/crawler/pkg/redb"
|
||||
"log"
|
||||
"os"
|
||||
"os/signal"
|
||||
"runtime"
|
||||
"sync"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"github.com/nbd-wtf/go-nostr"
|
||||
@@ -28,7 +26,7 @@ If Redis and the eventstore are already in sync, run the executable at /cmd/craw
|
||||
func main() {
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
go handleSignals(cancel)
|
||||
go pipe.HandleSignals(cancel)
|
||||
|
||||
config, err := config.Load()
|
||||
if err != nil {
|
||||
@@ -104,16 +102,6 @@ func main() {
|
||||
wg.Wait()
|
||||
}
|
||||
|
||||
// handleSignals listens for OS signals and triggers context cancellation.
|
||||
func handleSignals(cancel context.CancelFunc) {
|
||||
signals := make(chan os.Signal, 1)
|
||||
signal.Notify(signals, syscall.SIGINT, syscall.SIGTERM)
|
||||
<-signals
|
||||
|
||||
log.Println(" Signal received. Shutting down...")
|
||||
cancel()
|
||||
}
|
||||
|
||||
// enqueue things into the specified channel or return an error if full.
|
||||
func enqueue[T any](queue chan T) func(t T) error {
|
||||
return func(t T) error {
|
||||
|
||||
@@ -8,7 +8,10 @@ import (
|
||||
"github/pippellia-btc/crawler/pkg/redb"
|
||||
"github/pippellia-btc/crawler/pkg/walks"
|
||||
"log"
|
||||
"os"
|
||||
"os/signal"
|
||||
"sync/atomic"
|
||||
"syscall"
|
||||
"time"
|
||||
)
|
||||
|
||||
@@ -210,3 +213,13 @@ func Promote(db redb.RedisDB, node graph.ID) error {
|
||||
|
||||
return db.Promote(ctx, node)
|
||||
}
|
||||
|
||||
// HandleSignals listens for OS signals and triggers context cancellation.
|
||||
func HandleSignals(cancel context.CancelFunc) {
|
||||
signals := make(chan os.Signal, 1)
|
||||
signal.Notify(signals, syscall.SIGINT, syscall.SIGTERM)
|
||||
<-signals
|
||||
|
||||
log.Println("signal received. shutting down...")
|
||||
cancel()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user