commanded / eventstore

Event store using PostgreSQL for persistence
MIT License
1.06k stars 146 forks source link

Add support to queue_target and queue_interval #172

Closed Yamilquery closed 5 years ago

Yamilquery commented 5 years ago

To solve an issue related with connection not available and request was dropped from queue after 1652ms.

11:33:16.904 [error] GenServer {EventStore.Subscriptions.Subscription, {"$all", "Account.Workflows.GPEmailInvitationLogic"}} terminating
     ** (Protocol.UndefinedError) protocol String.Chars not implemented for %DBConnection.ConnectionError{message: "connection not available and request was dropped from queue after 1652ms. You can configure how long requests wait in the queue using :queue_target and :queue_interval. See DBConnection.start_link/2 for more information", severity: :error} of type DBConnection.ConnectionError (a struct). This protocol is implemented for the following type(s): Postgrex.Query, Postgrex.Copy, Decimal, Atom, BitString, Date, NaiveDateTime, Version.Requirement, URI, DateTime, Float, Integer, List, Time, Version
         (elixir) lib/string/chars.ex:3: String.Chars.impl_for!/1
         (elixir) lib/string/chars.ex:22: String.Chars.to_string/1
         (eventstore) lib/event_store/storage/subscription.ex:169: anonymous fn/3 in EventStore.Storage.Subscription.Ack.handle_response/3
         (logger) lib/logger.ex:862: Logger.normalize_message/2
         (logger) lib/logger.ex:687: Logger.__do_log__/3
         (eventstore) lib/event_store/storage/subscription.ex:168: EventStore.Storage.Subscription.Ack.handle_response/3
         (eventstore) lib/event_store/subscriptions/subscription_fsm.ex:611: EventStore.Subscriptions.SubscriptionFsm.checkpoint_last_seen/2
         (eventstore) lib/event_store/subscriptions/subscription_fsm.ex:577: EventStore.Subscriptions.SubscriptionFsm.ack_events/3
         (eventstore) lib/event_store/subscriptions/subscription_fsm.ex:135: EventStore.Subscriptions.SubscriptionFsm.transition/3
         (eventstore) lib/event_store/subscriptions/subscription.ex:162: EventStore.Subscriptions.Subscription.handle_call/3
         (stdlib) gen_server.erl:661: :gen_server.try_handle_call/4
         (stdlib) gen_server.erl:690: :gen_server.handle_msg/6
         (stdlib) proc_lib.erl:249: :proc_lib.init_p_do_apply/3
     Last message (from #PID<0.3908.0>): {:ack, 3, #PID<0.3908.0>}

I did a pull request in order to support the queue_target and queue_interval options.

slashdotdash commented 5 years ago

Thanks for the pull request Yamil.