Opened 3 years ago
Closed 2 years ago
#7094 closed enhancement (fixed)
RFE: Persist tasks across ChimeraX sessions
| Reported by: | Zach Pearson | Owned by: | Zach Pearson |
|---|---|---|---|
| Priority: | moderate | Milestone: | 1.7 |
| Component: | Web Services | Version: | |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
It should be possible for a user to start a job, close ChimeraX, reopen ChimeraX, and receive the results of the job.
Attachments (1)
Change History (7)
comment:1 by , 3 years ago
| Milestone: | 1.5 → 1.6 |
|---|
comment:2 by , 3 years ago
comment:4 by , 3 years ago
| Milestone: | 1.6 → 1.7 |
|---|
by , 2 years ago
| Attachment: | saved_blast_job.cxs added |
|---|
comment:5 by , 2 years ago
I started an AlphaFold version 4 session and saved it before the results came back, then modified chimerax.core.tasks and chimerax.webservices.cxservices_job to relaunch the job when the session gets restored. I was able to open the session, then ChimeraX contacted webservices, realized the job was done, and fetched the results for me. I've attached that session to this ticket.
The code that accomplishes this is not good. If stabilized in 1.7 it would create a parallel API for restoring jobs that would require any bugfix in one API to be duplicated in the other one. Both APIs target fixed functions when the pre-existing Task class could be modified so _run_thread takes a callable.
comment:6 by , 2 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Job restore code merged to develop
Looking like this will make 1.6. With some minimal modifications to the blastprotein and cxservices bundle, I can at least save a BlastProteinJob in a session and see it when it gets restored. Unfortunately, the restored data structure is not a BlastProteinJob but a CxServicesJob. Getting a BlastProteinJob to restore itself -- which would really be the point of this feature -- will require tweaking them so that BlastProteinJobs do not submit themselves automatically on creation. Luckily BlastProteinJob is only imported in esmfold and alphafold bundles.