On Thu, Feb 4, 2010 at 2:31 PM, Channing Walton <[email protected]>wrote:

>
>
> bearfeeder wrote:
> >
> > On Thu, Feb 4, 2010 at 1:11 PM, Channing Walton
> > <[email protected]>wrote:
> >
> >>
> >> ah, thats a good question. I am using sbt and its jetty-stop. I'll find
> >> out
> >> what its doing.
> >>
> >
> > I'm pretty sure Lift cancels the Comet connections during the Servlet
> > unload
> > process.
> >
>
> Actually I'm seeing the same thing with RunWebApp. Methinks there is a
> problem with my comet, I copied the pattern from somewhere else so it may
> well be wrong. Here it is:
>
> (apologies for the names - imagination is escaping me)
>
> class NewIssuesPump extends CometActor {
>
>  def render =
>                <div id="recent_deals">
>                 <ul>
>                  { Deal.recentDeals.map(d => <li>{d.name}
> {d.created.asHtml}</li>) }
>

I would recommend against this pattern.  It's less than optimal to make an
external call during the render process.

It's much better to send the recentDeals data to the CometActor via a
message.  That way, the CometActor isn't blocking on the RDBMS and you don't
have 20 or 50 different CometActors all making the same RDBMS call at once.

The Tick pattern is only good for a clock... it's very bad for other
patterns.

But this is not causing the problem (unless the query is taking a minute).

If you can tell me how the Jetty process is getting the message to shutdown,
I'll try to reproduce the issue.


>                 </ul>
>                </div>
>
>  override def lowPriority = {
>    case Tick => reRender(false)
>  }
>
>  override def localSetup {
>        super.localSetup()
>    NewIssuesPumpMaster ! SubscribePump(this)
>  }
>
>  override def localShutdown {
>    NewIssuesPumpMaster ! UnsubPump(this)
>    super.localShutdown()
>  }
> }
>
> case object Tick
> case class SubscribePump(pump : NewIssuesPump)
> case class UnsubPump(pump: NewIssuesPump)
>
> object NewIssuesPumpMaster extends LiftActor {
>
>  private var pumps : List[NewIssuesPump] = Nil
>
>  override def messageHandler = {
>          case SubscribePump(pump) => pumps  ::= pump
>          case UnsubPump(pump) => pumps -= pump
>      case Tick => pumps.foreach(_ ! Tick)
>        }
> }
>
> --
> View this message in context:
> http://old.nabble.com/Comet-making-jetty-take-a-long-time-to-shutdown-tp27450451p27460808.html
> Sent from the liftweb mailing list archive at Nabble.com.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Lift" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<liftweb%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/liftweb?hl=en.
>
>


-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Surf the harmonics

-- 
You received this message because you are subscribed to the Google Groups 
"Lift" 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/liftweb?hl=en.

Reply via email to