Winner.java
上传用户:weisa_1
上传日期:2007-10-14
资源大小:287k
文件大小:2k
源码类别:

手机WAP编程

开发平台:

Java

  1. package push;
  2. import feedback.Feedback;
  3. import java.io.*;
  4. import java.util.*;
  5. import javax.servlet.*;
  6. import javax.servlet.http.*;
  7. /**
  8.  * Selects winner 
  9.  *
  10.  * @version 1.0
  11.  * @since 1.0
  12.  * @see Runnable
  13.  */
  14. public final class Winner implements Runnable {
  15.     private final PushInitiator pusher;
  16.     private final String winnerUrl;
  17.     private final String addressType;
  18.     /**
  19.      * Creates a new <code>Winner</code> instance.
  20.      *
  21.      * @param pusher a <code>PushInitiator</code> value
  22.      * @param winnerUrl a <code>String</code> value
  23.      */
  24.     public Winner(PushInitiator pusher, String winnerUrl, String addressType) {
  25. this.pusher = pusher;
  26. this.winnerUrl = winnerUrl;
  27. this.addressType = addressType;
  28.     }
  29.     /**
  30.      * A checker thread selects a winner from the users that has returned feedback. A winner (if any) is selected 
  31.      * during every cycle (of the while loop). 
  32.      */
  33.     public void run() {
  34. String message = PushInitiator.createSiMessage(winnerUrl,  null, null, null, 
  35.        null, "You are lucky! Check the message");
  36. while(true){
  37.     try {
  38. Vector users = User.getUsersOnline();
  39. for(int i=0; i<users.size(); i++) {
  40.     User user = (User)users.get(i);
  41.     String name = user.getName();
  42.     if (Feedback.winner().equals(name)) {
  43. String address = user.getAddress(addressType);
  44. if(address != null && !address.trim().equals("")) {
  45.     try {
  46. pusher.sendPushMessage(address, addressType, message, PushService.SI_CONTENT_TYPE);
  47.     } catch(Exception ee) {}
  48. }
  49.     }
  50. }
  51.     }
  52.     catch(Exception e) { System.err.println(e); }
  53.     try {
  54. Thread.sleep(120000); // 2 min
  55.     }
  56.     catch(InterruptedException e){}
  57. }
  58.     }
  59. }