public PFMqConfig GetMqConfig(PFMqConfig mqConfig) { mqConfig.setMqType(PFMqHelper.PFMqType.PFEmailMq); mqConfig.setTopic(MqTopic.Test_TcTask_MonthDataCompareCnt.ToString()); return(mqConfig); }
//public static void BuildProducer(String message, PFProdutTask task) //{ // PFMqConfig mqConfig = task.GetMqConfig(_mqConfig.TClone()); // PFMqType mqType = mqConfig.getMqType(); // switch (mqType) // { // //case RabbitMq: // // (new PFMq(mqConfig)).BuildMqProducer(message); // // break; // //case RocketMq: // // (new PFMq(mqConfig)).BuildRocketMqProducer(message); // // break; // //case AliMq: // // (new PFMq(mqConfig)).BuildAliMqProducer(message); // // break; // case PFMqType.PFEmailMq: // if (task is PFProdutTask) // (new PFMq(mqConfig)).BuildPFEmailMqProducer(message); // break; // default: // break; // } //} //public static Task<PFEmail> BuildProducerAsync(String message, PFProdutTask task) //{ // PFMqConfig mqConfig = task.GetMqConfig(_mqConfig.TClone()); // PFMqType mqType = mqConfig.getMqType(); // switch (mqType) // { // //case RabbitMq: // // (new PFMq(mqConfig)).BuildMqProducer(message); // // break; // //case RocketMq: // // (new PFMq(mqConfig)).BuildRocketMqProducer(message); // // break; // //case AliMq: // // (new PFMq(mqConfig)).BuildAliMqProducer(message); // // break; // case PFMqType.PFEmailMq: // return (new PFMq(mqConfig)).BuildPFEmailMqProducerAsync(message); // break; // default: // return (new PFMq(mqConfig)).BuildPFEmailMqProducerAsync(message); // break; // } //} public static Task <PFEmail> BuildProducer(String message, PFProdutTask task) { PFMqConfig mqConfig = task.GetMqConfig(_mqConfig.TClone()); PFMqType mqType = mqConfig.getMqType(); switch (mqType) { //case RabbitMq: // (new PFMq(mqConfig)).BuildMqProducer(message); // break; //case RocketMq: // (new PFMq(mqConfig)).BuildRocketMqProducer(message); // break; //case AliMq: // (new PFMq(mqConfig)).BuildAliMqProducer(message); // break; case PFMqType.PFEmailMq: if (task is PFProdutResponseTask) { return((new PFMq(mqConfig)).BuildPFEmailMqProducerAsync(message)); } (new PFMq(mqConfig)).BuildPFEmailMqProducer(message); break; default: break; } return(null); }
public void BuildPFEmailMqConsumer(PFMqHelper.PFConsumerResponseTask pfDeliverCallback) { PFMqConfig mqConfig = pfDeliverCallback.GetMqConfig(_mqConfig); //string producerEmailTitle = "PFEmailMq_producer_" + "会员资料表";//中文有问题--benjamin todo //string producerEmailTitle = "PFEmailMq_producer_" + "hyzl"; //消费方(使用系统邮箱) string result = ""; //bool success = false; var consumerTask = new PFListenEmailTask("PFEmailMqConsumerListener_" + mqConfig.getTopic(), new PFEmailManager(PFDataHelper.SysEmailHostName, PFDataHelper.SysEmailUserName, PFDataHelper.SysEmailPwd), email => { //result = "{success:true}"; PFMqMessage pfMessage = new PFMqMessage(email); var r = pfDeliverCallback.handle(mqConfig.getTag(), pfMessage); if (r != null) { var UserEmailUserName = PFDataHelper.SysEmailUserName; ////消费方回复邮件(暂不回复--benjamin) PFDataHelper.SendEmail(PFDataHelper.SysEmailUserName, PFDataHelper.SysEmailPwd, PFDataHelper.SysEmailHostName, new string[] { UserEmailUserName }, "PFEmailMq_consumer_Response_" + mqConfig.getTopic() + email.Body, JsonConvert.SerializeObject(r)); } }, (email//, task ) => { //消费方监听生产方邮件 //return email.Subject != null && email.Subject.IndexOf("TestForceUpdateHyzl_") == 0;//这里不要用>-1,否则可能把自动回复的邮件也当作是了 return(email.Subject == "PFEmailMq_product_" + mqConfig.getTopic()); }); consumerTask.Start(); }
// public void BuildRabbitMqConsumer(PFMqHelper.PFConsumerTask pfDeliverCallback) { // try { // //rabbitmq // PFMqConfig mqConfig=pfDeliverCallback.GetMqConfig(_mqConfig); // com.rabbitmq.client.ConnectionFactory factory = new com.rabbitmq.client.ConnectionFactory(); // factory.setHost(mqConfig.getHost()); // Connection connection; // connection = factory.newConnection(); // Channel channel = connection.createChannel(); // String QUEUE_NAME=mqConfig.getQueueName(); // channel.queueDeclare(QUEUE_NAME, false, false, false, null); // System.out.println("\r\n [*][rabbitMq] queueName:"+QUEUE_NAME+"\r\n Waiting for messages.\r\n"); // DeliverCallback deliverCallback = (consumerTag, delivery) -> { // PFMqMessage pfMessage=new PFMqMessage(delivery); // String logMsg="\r\n [x][rabbitMq] queueName:"+QUEUE_NAME+"\r\n "+pfDeliverCallback.getClass().getSimpleName()+" Received '" + pfMessage.getMessage() + "' \r\n"; // WriteLog(logMsg); // pfDeliverCallback.handle(consumerTag,pfMessage); // }; // channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> { }); // } catch (IOException | TimeoutException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } // public void BuildRocketMqConsumer(PFConsumerTask pfDeliverCallback) { // try { // PFMqConfig mqConfig=pfDeliverCallback.GetMqConfig(_mqConfig); // //org.apache.rocketmq.client.consumer.DefaultMQPushConsumer consumer = new org.apache.rocketmq.client.consumer.DefaultMQPushConsumer("test-group"); // // consumer.setNamesrvAddr("localhost:9876"); // // consumer.setInstanceName("rmq-instance"); // // consumer.subscribe("log-topic", "user-tag"); // org.apache.rocketmq.client.consumer.DefaultMQPushConsumer consumer = new org.apache.rocketmq.client.consumer.DefaultMQPushConsumer(mqConfig.getGroupId()); // consumer.setNamesrvAddr(mqConfig.getNameSrvAddr()); // if(!PFDataHelper.StringIsNullOrWhiteSpace(_mqConfig.getInstanceName())) { // consumer.setInstanceName(_mqConfig.getInstanceName()); // } // consumer.subscribe(mqConfig.getTopic(),mqConfig.getTag()); // consumer.registerMessageListener(new org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently() { // @Override // public org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) { // for (MessageExt msg : msgs) { // PFMqMessage pfMessage=new PFMqMessage(msg); // String logMsg="\r\n [x][rocketMq] topic:"+mqConfig.getTopic()+" tag:"+mqConfig.getTag()+"\r\n "+pfDeliverCallback.getClass().getSimpleName()+" Received '" + pfMessage.getMessage() + "' \r\n "; // WriteLog(logMsg); // pfDeliverCallback.handle( mqConfig.getTag(),pfMessage); // } // return org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus.CONSUME_SUCCESS; // } // }); //// consumer.registerMessageListener(new org.apache.rocketmq.client.consumer.listener.MessageListenerOrderly() { //// //// @Override //// public ConsumeOrderlyStatus consumeMessage(List<MessageExt> msgs, ConsumeOrderlyContext context) { //// for (MessageExt msg : msgs) { //// System.out.println("消费者消费数据:"+new String(msg.getBody())); //// } //// return org.apache.rocketmq.client.consumer.listener.ConsumeOrderlyStatus.SUCCESS; //// } //// }); // consumer.start(); // System.out.println("\r\n [*][rocketMq] topic:"+mqConfig.getTopic()+" tag:"+mqConfig.getTag()+"\r\n Waiting for messages.\r\n"); // } catch (MQClientException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } // public void BuildAliMqConsumer(PFConsumerTask pfDeliverCallback) { // //参考:D:\eclipse_workspace\IpaasTest\src\com\mq\simple\ConsumerTest.java // Properties properties = GetAliMqProperties(); // PFMqConfig mqConfig=pfDeliverCallback.GetMqConfig(_mqConfig); // Consumer consumer = ONSFactory.createConsumer(properties); // consumer.subscribe(mqConfig.getTopic(), mqConfig.getTag(), new MessageListener() { // public Action consume(Message message, ConsumeContext context) { // PFMqMessage pfMessage=new PFMqMessage(message); // String logMsg="\r\n [x][aliMq] topic:"+mqConfig.getTopic()+" tag:"+mqConfig.getTag()+"\r\n "+pfDeliverCallback.getClass().getSimpleName()+" Received '" + pfMessage.getMessage() + "' \r\n "; // WriteLog(logMsg); // pfDeliverCallback.handle( mqConfig.getTag(),pfMessage); // return Action.CommitMessage; // } // }); // consumer.start(); // System.out.println("\r\n [*][aliMq] topic:"+mqConfig.getTopic()+" tag:"+mqConfig.getTag()+"\r\n Waiting for messages.\r\n"); // } //public void BuildPFEmailMqConsumer(PFMqHelper.PFConsumerTask pfDeliverCallback) //{ // PFMqConfig mqConfig = pfDeliverCallback.GetMqConfig(_mqConfig); // //string producerEmailTitle = "PFEmailMq_producer_" + "会员资料表"; // //string producerEmailTitle = "PFEmailMq_producer_" + "hyzl"; // //消费方(使用系统邮箱) // string result = ""; // //bool success = false; // var consumerTask = new PFListenEmailTask("PFEmailMqConsumerListener_" + mqConfig.getTopic(), // new PFEmailManager(PFDataHelper.SysEmailHostName, PFDataHelper.SysEmailUserName, PFDataHelper.SysEmailPwd), // email => // { // //result = "{success:true}"; // PFMqMessage pfMessage = new PFMqMessage(email); // var r = pfDeliverCallback.handle(mqConfig.getTag(), pfMessage); // if (r != null) // { // var UserEmailUserName = PFDataHelper.SysEmailUserName; // ////消费方回复邮件(暂不回复--benjamin) // PFDataHelper.SendEmail(PFDataHelper.SysEmailUserName, PFDataHelper.SysEmailPwd, PFDataHelper.SysEmailHostName, // new string[] { UserEmailUserName }, "PFEmailMq_consumer_Response_" + email.Subject + email.Body, // JsonConvert.SerializeObject(r)); // } // }, // (email//, task // ) => // { // //消费方监听生产方邮件 // //return email.Subject != null && email.Subject.IndexOf("TestForceUpdateHyzl_") == 0;//这里不要用>-1,否则可能把自动回复的邮件也当作是了 // return email.Subject == mqConfig.getTopic(); // }); // consumerTask.Start(); //} public void BuildPFEmailMqConsumer(PFMqHelper.PFConsumerTask pfDeliverCallback) { PFMqConfig mqConfig = pfDeliverCallback.GetMqConfig(_mqConfig); //string producerEmailTitle = "PFEmailMq_producer_" + "会员资料表"; //string producerEmailTitle = "PFEmailMq_producer_" + "hyzl"; //消费方(使用系统邮箱) string result = ""; //bool success = false; var consumerTask = new PFListenEmailTask("PFEmailMqConsumerListener_" + mqConfig.getTopic(), new PFEmailManager(PFDataHelper.SysEmailHostName, PFDataHelper.SysEmailUserName, PFDataHelper.SysEmailPwd), email => { //result = "{success:true}"; PFMqMessage pfMessage = new PFMqMessage(email); pfDeliverCallback.handle(mqConfig.getTag(), pfMessage); }, (email//, task ) => { //消费方监听生产方邮件 //return email.Subject != null && email.Subject.IndexOf("TestForceUpdateHyzl_") == 0;//这里不要用>-1,否则可能把自动回复的邮件也当作是了 return(email.Subject == "PFEmailMq_product_" + mqConfig.getTopic()); }); consumerTask.Start(); }
public static void BuildConsumer(PFConsumerResponseTask task) { PFMqConfig mqConfig = task.GetMqConfig(_mqConfig.TClone()); PFMqType mqType = mqConfig.getMqType(); switch (mqType) { //case PFMqType.RabbitMq: // (new PFMq(mqConfig)).BuildRabbitMqConsumer(task); // break; //case PFMqType.RocketMq: // (new PFMq(mqConfig)).BuildRocketMqConsumer(task); // break; //case PFMqType.AliMq: // (new PFMq(mqConfig)).BuildAliMqConsumer(task); // break; case PFMqType.PFEmailMq: (new PFMq(mqConfig)).BuildPFEmailMqConsumer(task); break; default: break; } }
public PFMqConfig GetMqConfig(PFMqConfig mqConfig) { mqConfig = new TestPFEmailMqProducer().GetMqConfig(mqConfig); mqConfig.setTag("*"); return(mqConfig); }
public PFMq(PFMqConfig mqConfig) { _mqConfig = mqConfig; }