Skip to content

Commit

Permalink
Add readme
Browse files Browse the repository at this point in the history
  • Loading branch information
hibiken committed Nov 30, 2019
1 parent d31532c commit b9cb95b
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 1 deletion.
81 changes: 81 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Asynq [![Build Status](https://travis-ci.com/hibiken/asynq.svg?token=paqzfpSkF4p23s5Ux39b&branch=master)](https://travis-ci.com/hibiken/asynq)

Asynq is a simple asynchronous task queue library in Go.

## Requirements

- Redis: 2.6+
- Go: 1.12+

## Installation

```
go get -u github.com/hibiken/asynq
```

## Getting Started

1. Import `asynq` in your file.

```go
import "github.com/hibiken/asynq"
```

2. Create a `Client` instance to create tasks.

```go
func main() {
client := asynq.NewClient(&asynq.RedisOpt{
Addr: "localhost:6379",
})

t1 := &asynq.Task{
Type: "send_welcome_email",
Payload: map[string]interface{
"recipient_id": 1234,
},
}

t2 := &asynq.Task{
Type: "send_reminder_email",
Payload: map[string]interface{
"recipient_id": 1234,
},
}

// send welcome email now.
client.Process(t1, time.Now())

// send reminder email 24 hours later.
client.Process(t2, time.Now().Add(24 * time.Hour))
}
```

3. Create a `Background` instance to process tasks.

```go
func main() {
bg := asynq.NewBackground(10, &asynq.RedisOpt{
Addr: "localhost:6379",
})

bg.Run(handler)
}

func handler(t *Task) error {
switch t.Type {
case "send_welcome_email":
rid, ok := t.Payload["recipient_id"]
if !ok {
return fmt.Errorf("recipient_id not found in payload")
}
fmt.Printf("Send Welcome Email to %d\n", rid.(int))

// ... handle other task types.

default:
return fmt.Errorf("unexpected task type: %s", t.Type)
}
return nil
}
```
2 changes: 1 addition & 1 deletion asynq.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import "github.com/google/uuid"

/*
TODOs:
- [P0] README + Other docs
- [P0] Go docs + CONTRIBUTION.md
- [P1] Add Support for multiple queues and priority
- [P1] User defined max-retry count
- [P2] Web UI
Expand Down

0 comments on commit b9cb95b

Please sign in to comment.