Compare commits

..

No commits in common. "9ce5f6e6c67514e57b640a63d5010d5c1837d304" and "3b2e866f3e692e7de632edd57daef9bcafac34a5" have entirely different histories.

5 changed files with 5 additions and 20 deletions

View File

@ -1,5 +1,4 @@
kind: pipeline
type: docker
name: default
workspace:

View File

@ -44,11 +44,6 @@ func (handler *subscriptionHandler) handlePublish(w http.ResponseWriter, r *http
return errors.Wrap(err, "could not read body")
}
err = handler.store.RemoveExpiredSubscribers()
if err != nil {
return errors.Wrap(err, "could not remove expired subscribers")
}
subs, err := handler.store.Subscribers(topic)
if err != nil {
return errors.Wrap(err, "could not get subscribers")

View File

@ -27,13 +27,12 @@ func (s *postgres) Close() error {
func (s *postgres) Subscribe(topic string, sub Subscriber) error {
_, err := s.db.Exec(`
INSERT INTO "subscribers"
("topic", "callback", "lease_seconds", "secret", "created", "updated")
VALUES ($1, $2, $3, $4, now(), now())
("topic", "callback", "lease_seconds", "secret", "created")
VALUES ($1, $2, $3, $4, now())
ON CONFLICT (topic, callback)
DO UPDATE SET lease_seconds = excluded.lease_seconds,
secret = excluded.secret,
updated = now(),
last_subscribed = now()
updated = excluded.created
`,
topic,
sub.Callback,
@ -46,11 +45,6 @@ DO UPDATE SET lease_seconds = excluded.lease_seconds,
return err
}
func (s *postgres) RemoveExpiredSubscribers() error {
_, err := s.db.Exec(`DELETE FROM "subscribers" WHERE "last_subscribed" + "lease_seconds" * interval '1' second < now()`)
return err
}
func (s *postgres) Unsubscribe(topic, callback string) error {
_, err := s.db.Exec(
`DELETE FROM "subscribers" WHERE "topic" = $1 AND "callback" = $2`,

View File

@ -2,13 +2,13 @@ package storage
import (
"time"
)
type Service interface {
Subscribe(topic string, subscriber Subscriber) error
Unsubscribe(topic, callback string) error
Subscribers(topic string) ([]Subscriber, error)
RemoveExpiredSubscribers() error
Close() error
}
@ -18,3 +18,4 @@ type Subscriber struct {
Secret string
Created time.Time
}

View File

@ -1,4 +0,0 @@
ALTER TABLE "subscribers"
ALTER COLUMN "created" TYPE timestamptz,
ALTER COLUMN "updated" TYPE timestamptz,
ADD COLUMN "last_subscribed" timestamptz;