Re: Long running tasks
Paul DeBruicker <[email protected]> Sun, 14 Mar 2021 17:44:20 -0500 (CDT)
| Newsgroups | gmane.comp.lang.smalltalk.squeak.seaside |
|---|---|
| Message-ID | <[email protected]> |
http://smalltalkhub.com/pdebruic/ThreadPool/ Is the code from Ramon's blog post & works with Seaside and Pharo/GemStone and I think Squeak. Aaron Rosenzweig wrote > Hi, > > Last I checked, Seaside is single-threaded which is a “good thing.” That > said, it implies that every user action must return quickly… perhaps no > longer than 1 second. If the action takes longer, a chain reaction starts > to form from multiple “simultaneous” users (not really at-the-same-time > users, they queue up with the single thread). There are times, in apps > I’ve written, where the act of clicking a link (or button) is expected to > take 10 minutes (sometimes half hour). During this time we want to fork a > thread to do the big task (like generate a report) that doesn’t tie up the > main thread. This way we can poll every 2 seconds to ask “are you done > yet?” with a progress bar and then ultimately bring the user back to the > normal flow. > > Does Seaside have a pre-baked solution for this? > > If not, I’ll take Ramon’s lead as his posts are the only thing I’ve been > able to find about the subject: > http://onsmalltalk.com/polling-for-long-running-processes > <http://onsmalltalk.com/polling-for-long-running-processes> > http://onsmalltalk.com/2010-07-28-a-simple-thread-pool-for-smalltalk > <http://onsmalltalk.com/2010-07-28-a-simple-thread-pool-for-smalltalk> > > In his case, he wanted a page to load immediately but then have a handful > (or more) ajax requests running in the background pinging other servers to > tally prices for a travel quote site. Sort of like those interlaced GIF > images back in the day, his page pops with basic information then > progressively renders other parts. So his example has maybe 10 threads > forked for one page to fully load and shows updates inline. > > I was thinking more of one page WAProgress (I made that up) with one > forked thread that monitors its execution and returns when it either > completes, errors, or the user clicks a cancel link. > > These are things baked into WebObjects (NeXT / Apple) and is what my > buddies and I use daily. We are tiptoeing around the idea of starting new > web development projects with Smalltalk / Seaside and testing the waters. > > I’ve setup a public demo app / repo to test out these concepts: > > https://github.com/recurve/ScriptaculistPharoHeySql/ > <https://github.com/recurve/ScriptaculistPharoHeySql/> > > It’s an address book application. What I’ll do is modify the delete of a > contact to fork and render the Progress component and programmatically > make the delete slow to show the feature. By the way, how do I do the > equivalent of “Thread.sleep()” in Smalltalk? > > Thanks in advance for any advice you may have, > — Aaron > _______________________________________________ > seaside mailing list > [email protected] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside -- Sent from: http://forum.world.st/Seaside-General-f86180.html _______________________________________________ seaside mailing list [email protected] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside