Another option is to use the Mapper API. Here's a simple example: http://ikaisays.com/2010/07/09/using-the-java-mapper-framework-for-app-engine/
The Mapper API provides an admin interface for administering your jobs. On Fri, Jul 30, 2010 at 12:22 PM, Steven Speek <[email protected]> wrote: > Dear Viji, > I had the same problem. You walked into the 30 seconds limit. > What you do is delete a fixed amount of entities and than schedule the > rest in a task. > In other words you define a task servlet that deletes say 100 items > and if there are items left reschedules itself. > This sounds hard but I hope the code explains more: > > http://code.google.com/p/fspotcloud/source/browse/server/src/main/java/fspotcloud/server/admin/task/PhotoDeleteTaskServlet.java?repo=java > From there > public long deleteAllPhotos() { > Batch batch = batchManager.create("deleteAllPhotos"); > long batchId = batchManager.save(batch); > > Queue queue = QueueFactory.getDefaultQueue(); > queue.add(url("/admin/task/ > photoDelete").param("deleteCount", "0") > .param("batchId", > String.valueOf(batchId))); > return batchId; > } > this task is called. > All references to Batch can be discarded. It is for me to see when the > delete is finished. > And my code is GNUv3 so feel free. > > Kind regards, > Steven > > On 30 jul, 20:45, Viji Sarathy <[email protected]> wrote: > > Hi, > > > > I am trying to programmatically delete a large set of entities from > > the datastore based on the value of one of the properties of the > > entity, namely, "asOfDate". > > > > The Java method that I am using to perform this operation is shown at > > the end of this message. > > I have another method that is very similar that tells me the count of > > the entities for the given parameter. > > > > The date parameter that I am using is Mar 01, 2010. There are 12032 > > entities whose "asOfDate" property is less than this value. When I > > invoke the deleteUsageDates method below, the server tries for a while > > and ultimately gives a 500 error with the following message: > > "A serious problem was encountered with the process that handled this > > request, causing it to exit. This is likely to cause a new process to > > be used for the next request to your application. If you see this > > message frequently, you may be throwing exceptions during the > > initialization of your application. (Error code 104)" > > > > Any idea what I am doing wrong? > > Thanks, > > Viji > > > > public static boolean deleteUsageDates (Date endDate) > > { > > SimpleDateFormat dateFormat = new SimpleDateFormat > ("yyyy-MM-dd"); > > String endDateStr = dateFormat.format (endDate); > > > > PersistenceManagerFactory factory = > JdoPersistenceManagerFactory.get > > (); > > PersistenceManager manager = > factory.getPersistenceManager (); > > try > > { > > Query query = manager.newQuery > (UsageHistory.class); > > query.setFilter ("asOfDate < endDateParam"); > > query.declareImports ("import java.util.Date"); > > query.declareParameters ("Date endDateParam"); > > query.deletePersistentAll (endDate); > > return true; > > } > > catch (Exception ex) > > { > > logger.severe (String.format ("Exception while > deleting usage > > histories before %s; Exception message = %s", endDateStr, > > ex.getMessage ())); > > } > > return false; > > } > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine for Java" group. > To post to this group, send email to > [email protected]. > To unsubscribe from this group, send email to > [email protected]<google-appengine-java%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/google-appengine-java?hl=en. > > -- Ikai Lan Developer Programs Engineer, Google App Engine Blog: http://googleappengine.blogspot.com Twitter: http://twitter.com/app_engine Reddit: http://www.reddit.com/r/appengine -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
