Together (together v0.5.1)
Group actions that can be handled / responded to later together
  
  what-for
  
  What for?
- group notifications to be sent in one email
- cancel the previously queued email if another event happens within a short period (type: debounce)
 
 - make heavy operations happen less often, i.e. refresh some global statistics
- allow only 1 operation per certain period (type: throttle)
 
 - protect some write api
- additonally you can choose to use the first value in a period (keep: first)
 - or the last value in the period (keep: last)
 
 
  
  how-to-use
  
  How to use
Start Together.Supervisor to use it
  
  start-with-application-configs
  
  Start with application configs
supervisor(Together.Supervisor, [])
  
  start-with-configs-passed-in
  
  Start with configs passed in
supervisor(Together.Supervisor, [workers: ..., store: ...])See Together.Supervisor for full configuration information
Make calls to the worker process:
Together.process(binary_name, "something_unique", some_func)
Together.process(pid, "some_unique_name_or_id", a_function)
Together.process(Together.Worker, "id", Module, :func, [arg1, arg2, ...])
  Link to this section Summary
Functions
cancels queued action for the given id
put in a function under the id to be processed (invoked) later
put in an mfa under the id to be processed (applied) later
Link to this section Functions
    
      
      Link to this function
    
    
  cancel(name, id)
@spec cancel(binary() | GenServer.server(), term()) :: :ok | :error
cancels queued action for the given id
    
      
      Link to this function
    
    
  process(name, id, func)
@spec process(binary() | GenServer.server(), term(), (... -> any())) :: :ok | no_return()
put in a function under the id to be processed (invoked) later
    
      
      Link to this function
    
    
  process(name, id, m, f, a)
put in an mfa under the id to be processed (applied) later