我遇到了 IdleManager 类和 watch 方法,它使 imap 文件夹保持打开状态,并且理论上正在监视新消息,但如何让它在新电子邮件到达时输出或通知?
代码:
public static void main(String[] args) throws MessagingException, IOException {
IMAPFolder folder = null;
Store store = null;
String subject = null;
Flag flag = null;
try
{
Properties props = System.getProperties();
props.setProperty("mail.store.protocol", "imaps");
props.setProperty("mail.imaps.usesocketchannels", "true");
Session session = Session.getDefaultInstance(props, null);
ExecutorService es = Executors.newCachedThreadPool();
final IdleManager idleManager = new IdleManager(session, es);
store = session.getStore("imaps");
store.connect("<mail>.com","<username>", "<password>");
folder = (IMAPFolder) store.getFolder("INBOX");
if(!folder.isOpen())
folder.open(Folder.READ_ONLY);
folder.addMessageCountListener(new MessageCountAdapter() {
public void messagesAdded(MessageCountEvent ev) {
Folder folder …
Run Code Online (Sandbox Code Playgroud) 我正在 Unity 2017 中用 C# 开发一个简单的游戏。
在我的级别菜单中,我有一个文本对象,其中有一个按钮组件,并附加了一个脚本。
这是脚本中当前的内容:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class LevelLock : MonoBehaviour {
public bool isLocked = true;
private Button lvlBtn;
// Use this for initialization
void Start () {
lvlBtn = GetComponent<Button> ();
if (lvlBtn != null) {
Debug.Log ("this should be working");
} else {
Debug.Log ("you did something wrong");
}
//if(isLocked){
// lvlBtn.enabled = false;
//}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,正在GetComponent<Button>()
返回null
,这意味着它没有在对象中找到按钮组件。
我尝试添加一个 Animator 组件并执行相同的操作只是为了检查它是否有效,所以我不知道为什么它找不到按钮组件。如果有人可以帮助解决这个问题或向我指出我做错的事情,我将非常感激
编辑: …
所以我的问题是:如果我有一台运行 Kafka(和 zookeeper)的服务器,而另一台机器只消费消息,那么消费者机器是否也需要运行 zookeeper?还是服务器会处理所有问题?