🆕 New APN library which allowed to switch to new Apple API for Push notifications (HTTP/2).
🚀 Made changes so multiple Pushkin instances can use a single database, if needed. In previous versions, if you used multiple instances additional logic was necessary to determine the Pushkin instance which has information on the user that has to receive the push notification. This is not the case now, since the data can be shared. Following this, we advise installing a load balancer in production if you have multiple Pushkin instances, to fully use the benefits of this release.
⚡️ The centralized database update introduced some useful side effects:
- 🐎 RequestProcessor is now a process pool instead of ThreadPool, this will lead to increased performance.
- Eliminated PostgreSQL HStore dependency.
Since RequestProcessor is now a process pool and SQLAlchemy connection pool cannot be shared in forked processes we had to turn it off. It is advised
🐎 that in production you use an external connection pool, such as PgBouncer. If you choose not to use PgBouncer this doesn't mean your performance will suffer in comparison to previous version of Pushkin. A boost in performance is to be expected either way.
- 🛠 Fixed memory leak in APN client that was causing memory to grow after every notification sent
- ➕ Added Automatic APN client reconnect when connection was reset remotely by APN. This can happen due to inactivity, network problems or APN service being offline. Before this update, the problem required pushkin restart to be fixed.
v0.1.2April 11, 2016
- Package test so it would be possible to run tests after module installation