_editingContext.setFetchTimestamp( System.currentTimeMillis() - 1000 ); Regards, Kieran :-)
On Sep 14, 2011, at 10:51 AM, Pascal Robert wrote: > I have a question about EO refresh. I have a component where I show the list > of running and completed jobs (reports) and since some jobs might be running, > I want to use AjaxPing to refresh the page every 5 seconds so that users > don't have to click on a link or button to refresh the page. > > The list is built with: > > public NSArray<ReportTask> reportsForCurrentUser() { > return ReportTask.fetchReportTasks(editingContext(), > ReportTask.USER.eq(((Session)session()).user()), > ReportTask.START_TIME.descs()); > } > > The editing context have a 1 second timestamp: > > protected EOEditingContext editingContext() { > if (_editingContext == null) { > _editingContext = ERXEC.newEditingContext(); > _editingContext.setFetchTimestamp(1000); > } > return _editingContext; > } > > And I have a method, countOfRunningJobs, that fetch the list of currently > running or pending jobs. I use that method to return the number of running > jobs and use it as the "cacheKey" binding for AjaxPing. > > public int countOfRunningJobs() { > EOQualifier qualifier = > ReportTask.USER.eq(((Session)session()).user()).and(ReportTask.STATUS.notIn(new > NSArray<ReportTaskStatus>(new ReportTaskStatus[] { > ReportTaskStatus.COMPLETED, ReportTaskStatus.STOPPED } ))); > NSArray<ReportTask> runningTasks = > ReportTask.fetchReportTasks(editingContext(), qualifier, null); > for (ReportTask task: runningTasks) { > editingContext().refreshObject(task); > NSLog.out.appendln(task.status()); > } > return ReportTask.fetchReportTasks(editingContext(), qualifier, > null).count(); > } > > That logic is ok, if I print the integer in the component, the value is ok > (eg, if I have a running job, count is 1, when the job is completed, count is > 0). But the "task" EO is NOT updated after the refresh, even if in the > database, the status was changed to "COMPLETED", the NSLog call returns > "RUNNING". I do see a SELECT being done to fetch the task details, so it look > it's EOF who doesn't want to refresh the object, even if the timestamp is low. > > What I'm doing wrong? > > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > http://lists.apple.com/mailman/options/webobjects-dev/kelleherk%40gmail.com > > This email sent to kelleh...@gmail.com
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com