Example #1
0
			Expect(reloadedJob.RetryCount).To(Equal(5))
		})
	})

	Describe("Reserve", func() {
		It("reserves a job in the database", func() {
			job := gobble.Job{
				Payload: "something",
			}

			err := database.Connection.Insert(&job)
			if err != nil {
				panic(err)
			}

			jobChannel := queue.Reserve("workerId")
			reservedJob := <-jobChannel

			Expect(reservedJob.ID).To(Equal(job.ID))
			Expect(reservedJob.ActiveAt).To(BeTemporally("~", time.Now(), 100*time.Millisecond))
		})

		It("keeps trying to reserve a job until one becomes available", func() {
			jobChannel := queue.Reserve("my-id")

			Consistently(jobChannel).ShouldNot(Receive())

			job, err := queue.Enqueue(gobble.Job{
				Payload: "hello",
			})
			if err != nil {