Implement async job for publishing messages
 - support activejob
 - refactoring