* asgiref async_to_sync was causing a Redis connection _for each_ call to emit_channel_notification i.e. every event that the callback receiver processes. This is a "known" issue https://github.com/django/channels_redis/pull/130#issuecomment-424274470 and the advise is to slow downn the rate at which you call async_to_sync. That is not an option for us. Instead, we put the async group_send call onto the event loop for the current thread and wait for it to be processed immediately. The known issue has to do with event loop + socket relationship. Each connection to redis is achieved via a socket. That conection can only be waiting on by the event loop that corresponds to the calling thread. async_to_sync creates a _new thread_ for each invocation. Thus, a new connection to redis is required. Thus, the excess redis connections that can be observed via netstat | grep redis | wc -l.
AWX provides a web-based user interface, REST API, and task engine built on top of Ansible. It is the upstream project for Tower, a commercial derivative of AWX.
To install AWX, please view the Install guide.
To learn more about using AWX, and Tower, view the Tower docs site.
The AWX Project Frequently Asked Questions can be found here.
The AWX logos and branding assets are covered by our trademark guidelines.
Contributing
- Refer to the Contributing guide to get started developing, testing, and building AWX.
- All code submissions are done through pull requests against the
develbranch. - All contributors must use git commit --signoff for any commit to be merged, and agree that usage of --signoff constitutes agreement with the terms of DCO 1.1
- Take care to make sure no merge commits are in the submission, and use
git rebasevsgit mergefor this reason. - If submitting a large code change, it's a good idea to join the
#ansible-awxchannel on irc.freenode.net, and talk about what you would like to do or add first. This not only helps everyone know what's going on, it also helps save time and effort, if the community decides some changes are needed.
Reporting Issues
If you're experiencing a problem that you feel is a bug in AWX, or have ideas for how to improve AWX, we encourage you to open an issue, and share your feedback. But before opening a new issue, we ask that you please take a look at our Issues guide.
Code of Conduct
We ask all of our community members and contributors to adhere to the Ansible code of conduct. If you have questions, or need assistance, please reach out to our community team at codeofconduct@ansible.com
Get Involved
We welcome your feedback and ideas. Here's how to reach us with feedback and questions:
- Join the
#ansible-awxchannel on irc.freenode.net - Join the mailing list