background_job.rb 749 B

123456789101112131415161718192021222324252627282930313233343536
  1. # Copyright (C) 2012-2014 Zammad Foundation, http://zammad-foundation.org/
  2. class Transaction::BackgroundJob
  3. def initialize(item, params = {})
  4. =begin
  5. {
  6. object: 'Ticket',
  7. type: 'update',
  8. ticket_id: 123,
  9. via_web: true,
  10. changes: {
  11. 'attribute1' => [before,now],
  12. 'attribute2' => [before,now],
  13. }
  14. user_id: 123,
  15. },
  16. =end
  17. @item = item
  18. @params = params
  19. end
  20. def perform
  21. Setting.where(area: 'Transaction::Backend::Async').order(:name).each {|setting|
  22. backend = Kernel.const_get(Setting.get(setting.name))
  23. Observer::Transaction.execute_singel_backend(backend, @item, @params)
  24. }
  25. end
  26. def self.run(item, params = {})
  27. generic = new(item, params)
  28. generic.perform
  29. end
  30. end