Does anyone understand why I am seeing the following behavior in
JavaBeanstalkClient?
Consumer watches a particular tube (mytube) in its constructor, then in
run() (new thread) all of a sudden it is watching the default tube again! If
I watch mytube in run() it sticks. Output and code below.
Ubuntu 10.4
beanstalk version 1.4.3-1
Java BeanstalkClient 1.2.2
All latest I can get.
Dan
*Output:
*
20101103 22:17:16 INFO: watching [mytube]
20101103 22:17:16 INFO: watching [mytube]
20101103 22:17:16 INFO: watching [default]
*Code:
*
import java.util.logging.Logger;
import com.surftools.BeanstalkClient.Client;
import com.surftools.BeanstalkClientImpl.ClientImpl;
public class Foo5 {
private static Logger logger = Logger.getLogger(Foo5.class.getName());
private static final String TUBE_NAME = "mytube";
private static class Consumer implements Runnable {
private Client client;
public Consumer() {
client = new ClientImpl("localhost", 11300);
watch();
}
private void watch() {
client.watch(TUBE_NAME); // for reserve()
client.ignore("default"); // Don't get tasks from "default"
queue
logWatching(); // mytube
}
public void logWatching() {
logger.info("watching " + client.listTubesWatched());
}
@Override
public void run() {
// watch(); // Uncomment this to watch mytube
logWatching(); // default?! why?
}
}
public static void main(String[] args) throws Exception {
Consumer consumer = new Consumer();
consumer.logWatching(); // mytube
new Thread(consumer).start();
}
}
--
You received this message because you are subscribed to the Google Groups
"beanstalk-talk" 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/beanstalk-talk?hl=en.