GitHub user manuelbarzi opened a pull request:
https://github.com/apache/wicket/pull/212
WICKET-6177 Blocking page serialization
from https://issues.apache.org/jira/browse/WICKET-6177
**AsyncPageStore** adds the capability to provide an asynchronous page
storing by wrapping the original sync page store (e.g. DefaultPageStore) and
handling store requests in a queue and storing pages in worker thread which
makes use of the original store. The number of pages to be managed
asynchronously is defined by a capacity, provided by estimation which should be
done on each specific application where applied.
The aim of AsyncPageStore is to unblock page requests when serialization
process takes 'too long', giving the user the sensation of 'slow web'. This
could happen in applications that for any reason delay on backing up pages by
means of the current default wicket store.
It adds the chance to manage a preset number of pages asynchronously,
defined by the 'capacity', and in case that limit is exceeded by requests, it
just works as the original sync page store, by simply delegating work on it
until the queue is released and space is done to handle pages in asynchronous
way again.
It acts in a way like saying "let's handle storing of pages asynchronously
for an estimated number of them in 'normal conditions', and in case there is an
excess of pages to store (peak of requests), that is, exceeding async store
'capacity', then let's just work as normally.
**AsyncPageStoreTest** provides initial on/off cases with the scenarios in
which async page store works in 'normal conditions' (not exceeding capacity),
and the opposite (arriving at a point of exceeding that capacity).
original code is already 'gutted' in a **quickstart** for inspection and
testing in https://github.com/manuelbarzi/wicket-async-page-store
for further details on this projection, just following the first link above.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/manuelbarzi/wicket master
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/wicket/pull/212.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #212
----
commit 2ffd587dea4c5e1edec0853f35a9b5761e391917
Author: manuelbarzi <[email protected]>
Date: 2017-02-12T01:23:40Z
WICKET-6177 Blocking page serialization
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---