Feature Request: Make Vandelay Asynchronous/Stateless
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Evergreen |
Fix Released
|
Wishlist
|
Unassigned |
Bug Description
My idea is that we abandon the current streaming/
1) if file upload is asynchronous, that alleviates the user's need to "babysit" the UI while the file loads.
2) asynchronous upload removes the expectation that bib loads should be "fast" (which they usually aren't in my experience)
3) even when the user "babysits" the UI, it can time out and the user doesn't have a clear indication that the UI has stopped working
There are probably more advantages that I'm not thinking of at the moment. I can't think of disadvantages right now.
This idea came to me while pondering approaches to bug 985295, but this would solve many frustrations I've had using vandelay to import large bib files in the past.
Affects all EG/OpenSRF versions on all DB and OS platforms.
Changed in evergreen: | |
assignee: | nobody → Bill Erickson (berick) |
status: | New → In Progress |
milestone: | none → 3.2-beta |
Changed in evergreen: | |
assignee: | nobody → Bill Erickson (berick) |
Changed in evergreen: | |
assignee: | Bill Erickson (berick) → nobody |
Changed in evergreen: | |
assignee: | nobody → Galen Charlton (gmc) |
Changed in evergreen: | |
assignee: | Galen Charlton (gmc) → nobody |
Changed in evergreen: | |
status: | Fix Committed → Fix Released |
I like the idea. I'd prefer it be handled via the API, instead of a static page, similar to clear holds shelf. For example:
* Client uploads file.
* Import API creates an entry in memcache to represent the import.
* Import API immediately returns the cache key to the client.
* Client jumps directly to the queue interface.
* As the import proceeds, the API updates the memcache'd object at regular intervals to store the state of the import (e.g. 135 of 200 records processed).
* Using the cache key, the queue interface regularly polls for status of the import and displays status information, similar to the existing progress bars/counters.
* Assuming the client stores the cache key, staff could navigate away from the interface and return later to check status.
We could go a step further and store import info in the database instead of the cache. With that, the data would persist and there would be a reportable history of imports. *shrug*.
===
+1 to email support as well. An action/trigger hook should suffice for that, regardless of how the above is handled.