在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答
焚音 回答

進(jìn)到tomcat安裝目錄,執(zhí)行bin/shutdown.bat 或bin/shutdown.sh就可以關(guān)掉tomcat了.

如果是自動(dòng)安裝的tomcat, 停掉service就好了, 用windows的自帶服務(wù)管理工具就好.

tomcat也有自帶工具,這里有完整的說(shuō)明 https://tomcat.apache.org/tom...

還有一個(gè)辦法就是 telnet localhost 8005 連上后輸入SHUTDOWN,這種方式是跨平臺(tái)的,甚至可以遠(yuǎn)程操作,可以停掉服務(wù),但不是御載,下次開機(jī)還會(huì)啟動(dòng).

EDITED

如果找不到是哪個(gè)程序占用了端口,可以用netstat -anbo 找到進(jìn)程的PID, 用tasklist |findstr PID來(lái)查找可執(zhí)行文件的名字. 可能還需要后續(xù)的搜索磁盤.

不過(guò)...
更好的工具是用TCPView 這個(gè)必備工具. 有了他, 不再為windows而煩惱!

九年囚 回答

${toolsjarSystemPath} 這個(gè)是不是沒定義

老梗 回答

設(shè)置3個(gè)變量初始值都是 false, 每個(gè)定時(shí)器各控制一個(gè), 執(zhí)行的時(shí)候賦值為true, 然后判斷這3個(gè)變量的值,都為true, 說(shuō)明都已經(jīng)已經(jīng)執(zhí)行了

喜歡你 回答

對(duì)于復(fù)制集,唯一索引是保證絕對(duì)唯一的;對(duì)于分片集,只保證片內(nèi)唯一,不保證跨片的唯一,除非唯一索引正好是片鍵。
這些在文檔里有,可以參考。因?yàn)椴恢滥憔唧w出現(xiàn)的是什么問(wèn)題,所以也沒法分析了。

影魅 回答

是很麻煩的,這個(gè)框架寫個(gè)hello world都要這么久,我都懶得用,我都是直接echo 'hello world'
現(xiàn)在的麻煩,將來(lái)維護(hù)的時(shí)候你會(huì)感謝的。而不是到將來(lái)的時(shí)候,一直說(shuō),這是誰(shuí)寫的代碼?用原生 SQL, DB 構(gòu)造,什么都有。
ps:多對(duì)多關(guān)聯(lián)可以不寫模型,也可以寫。

首先,最簡(jiǎn)單的辦法就是搜一下這個(gè)庫(kù)的源碼里是否出現(xiàn)了 asyncioasync def 的字樣,如果沒有出現(xiàn)則幾乎可以證明這個(gè)庫(kù)沒有對(duì) asyncio 有做特別的支持。為了徹底證實(shí),還應(yīng)仔細(xì)閱讀其代碼,查看關(guān)鍵 I/O 部分是如何實(shí)現(xiàn)的。

對(duì)于暫不支持 asyncio 的第三方庫(kù),可以按以下步驟依次排查:

  1. 確認(rèn)其 I/O 時(shí)間比例是否占到大部分。比如用 SQLAlchemy 時(shí),如果能基本上確保數(shù)據(jù)庫(kù)操作都是瞬時(shí)的,那么理論上是可以任由其阻塞主線程的。而對(duì)于明顯 I/O 占大多數(shù)時(shí)間且時(shí)間不可預(yù)測(cè)的,比如 requests,就不能讓其成為性能瓶頸;
  2. 確認(rèn)其 I/O 的并發(fā)能力是否會(huì)成為瓶頸。比如說(shuō)還是用到了 requests,但平均下來(lái)每 10 分鐘才會(huì)發(fā)一個(gè)請(qǐng)求,其他時(shí)間主要都用在數(shù)據(jù)庫(kù)計(jì)算上了,那么完全可以把 requests 放到線程池里去做;
  3. 確實(shí)需要異步了,首先查找其 asyncio 的擴(kuò)展,有時(shí)會(huì)有單獨(dú)的庫(kù)做 asyncio 支持,比如 peewee_async;
  4. 查找其 asyncio 的替代,比如用 asyncpg 替代 psycopg2;
  5. 實(shí)在沒有了,再次看看線程池的解決方案對(duì)性能的影響到底是多少;
  6. 如果線程池確實(shí)不行,此時(shí)一般碰到的庫(kù)多半都會(huì)有自己的并發(fā)模型,走到這一步意味著該并發(fā)模型并不能兼容 asyncio。此時(shí),可以看看并發(fā)庫(kù)對(duì) asyncio 的支持,比如 gevent 與 asyncio 的橋接;
  7. 自己改了它吧,或者造新的輪子。
單眼皮 回答

tp5數(shù)據(jù)庫(kù)查詢結(jié)果集默認(rèn)返回的是對(duì)象,不是數(shù)組(數(shù)組需要$result->toArray();或者在配置里面設(shè)置結(jié)果集類型為數(shù)組)。你上面報(bào)錯(cuò)說(shuō)的是沒有數(shù)組索引, 你把那個(gè)$value返回回來(lái)看看有沒有值不就知道了

伐木累 回答

使用ajax請(qǐng)求后臺(tái)的api:
api生成一個(gè)驗(yàn)證碼存到redis,并發(fā)送給用戶手機(jī)。
驗(yàn)證時(shí),后臺(tái)拿到用戶輸入的驗(yàn)證碼和redis里面的驗(yàn)證碼做比較。

悶油瓶 回答

runner.run = unittest.TextTestRunner(verbosity=2).run(test_unit)
這個(gè)方法是將測(cè)試結(jié)果顯示到控制臺(tái)的
如果說(shuō)你使用了HTMLTestRunner的runner.run(test_unit)
話就是將測(cè)試結(jié)果輸出到測(cè)試報(bào)告中顯示

毀了心 回答

你上面的寫法是DOM0的事件綁定寫法。假設(shè)你在下面又用updateButton綁定click事件執(zhí)行一些操作。那么就會(huì)覆蓋掉你上面寫的

updateButton.click = function() {
    articleArea.update();
    relatedArea.update();
};

這些操作。
但是addEventListener是DOM2寫法??梢越壎▋蓚€(gè)click事件,執(zhí)行兩種操作。(雖然你也可以把這兩個(gè)操作寫在一個(gè)方法中),addEventListener可以通過(guò)傳入第三個(gè)參數(shù)(布爾值)來(lái)讓事件是冒泡階段調(diào)用(false)還是捕獲階段調(diào)用(true),雖然這個(gè)單詞有點(diǎn)長(zhǎng),但是不管怎么看都要優(yōu)于DOM0的DOM事件寫法

瘋浪 回答

`$("#menu_sub,#menu_sub2,#menu_sub3").hide();
$(".menu").mouseenter(function(event) {

 $(this).css('color', '#46a9ff').next().slideDown();
 $(this).siblings('.menu').css('color', '').next().slideUp();

});`
這個(gè)建議你先熟悉下jq基礎(chǔ),你會(huì)發(fā)覺寫起來(lái)會(huì)很簡(jiǎn)單。

C++的話可以使用GetAdaptersInfo函數(shù)來(lái)獲取相關(guān)網(wǎng)卡信息。
提供一個(gè)實(shí)例鏈接(實(shí)例存在內(nèi)存泄露):鏈接描述

官方實(shí)例:鏈接描述

  1. 一個(gè)map和reduce完成不了. 中間要再加一個(gè)combiner.
  2. 捋一下思路
    假設(shè)a.txt文件里數(shù)據(jù)是{tom jack tom jack rose tom}
    那么map的輸出就是
    <tom,1> <jack,1> <tom,1> <jack,1> <rose,1> <tom,1>
    然后匯總工作到reduce去做.reduce接收的就是這樣的數(shù)據(jù)
    <tom,[1,1,1]><jack,[1,1]><rose,[1]>
    reducer輸出的是<tom,3><jack,2><rose,1>, 這樣就統(tǒng)計(jì)出來(lái)了. 當(dāng)然這是普通的做法

你現(xiàn)在想要實(shí)現(xiàn)的是同級(jí)單詞在a文件和b文件...中各出現(xiàn)的次數(shù).
假設(shè)有兩個(gè)文件a.txtb.txt.
a文件里面的數(shù)據(jù)是{tom jack tom jack rose tom}
b文件里面的數(shù)據(jù)是{google apple tom google rose}
把編號(hào)換成了文件名.
map的輸出就是這樣<tom:a.txt,1> <jack:a.txt,1> <tom:a.txt,1><jack:a.txt,1> <rose:a.txt,1>

           <google:b.txt,1><apple:b.txt,1><tom:b.txt,1>....

這樣的數(shù)據(jù)給到reducer,reducer統(tǒng)計(jì)不了.因?yàn)閗ey不相同.key有的是<tom:a.txt,1><tom:b.txt,1>.
為了解決這個(gè)問(wèn)題,map輸入的內(nèi)容不要直接到reducer中,中間加一層combiner來(lái)處理匯總數(shù)據(jù)
combiner接收<tom:a.txt,1><tom:b.txt,1>
combiner把key做一下切割 .切割成<tom, a.txt:1 ><tom , b.txt:2> ,這樣key相同了.就可以統(tǒng)計(jì)了
下面把代碼貼上 注[我用的是文件的名稱,不是文件里的開頭編號(hào),要用的話還得把文件名換成編號(hào),這樣做有寫問(wèn)題,你可以下去試一試.我找到解決辦法在補(bǔ)充.]
mapper類

public class WCMapper extends Mapper<LongWritable,Text,Text,Text>{

    Text text = new Text();
    Text val = new Text( "1" );

    protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {

        String line = value.toString();
        String [] strings = line.split( " " ); //根據(jù)空格切割

        FileSplit fileSplit = (FileSplit) context.getInputSplit();// 得到這行數(shù)據(jù)所在的文件切片
        String fileName = fileSplit.getPath().getName();// 根據(jù)文件切片得到文件名

        for (String s : strings){
            text.set(s + ":" + fileName);
            context.write(text,val);
        }
    }
}

combiner類

public class WCCombiner extends Reducer<Text,Text,Text,Text> {
    Text text = new Text( );
    @Override
    protected void reduce(Text key, Iterable<Text> values, Context context) throws IOException, InterruptedException {

        //map傳進(jìn)來(lái)的是 <apple:2 , 1> <google:2 ,1>

        int sum = 0; //統(tǒng)計(jì)詞頻
        for (Text val : values){
            sum += Integer.parseInt(val.toString());
        }

        //切割key
        int index = key.toString().indexOf( ":" );
        text.set(key.toString().substring( index + 1 ) + ":" + sum); // value ---> 2:1
        key.set( key.toString().substring( 0,index )); // key --> apple
        context.write( key,text );
    }
}

reducer類:

public class WCReduce  extends Reducer<Text,Text,Text,Text>{


    Text result = new Text(  );
    protected void reduce(Text key, Iterable<Text> values, Context context) throws IOException, InterruptedException {

        String file = new String();

        for (Text t : values){
            file += t.toString();
        }

        result.set( file );

        context.write( key,result);
    }
}

注[本地鏈接的linux環(huán)境hadoop] ,要在本機(jī)的/etc/hosts文件中添加 export HADOOP_USER_NAME=hdfs
a.txt和b.txt都是單詞,以空格分割,你可以做假數(shù)據(jù)測(cè)試一下.
這是測(cè)試結(jié)果.

clipboard.png

你的代碼在第二個(gè)循環(huán)里加上索引,傳值時(shí)傳foodIndex,因?yàn)槟阋氖屈c(diǎn)擊food

 <div v-for="(food,foodIndex) in item.foods" v-show="name==item.name" class = 'food' :class="{'food-selected':foodIndex== activeIndex}"  @click ="addCart(food,foodIndex)" >

我的demo也換為多層循環(huán)了,數(shù)據(jù)結(jié)構(gòu)跟你差不多,一樣的可以的,你要注意下每層循環(huán)的索引要對(duì)應(yīng)每一層,不要寫錯(cuò)了

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>changeClass</title>
  <script src="https://cdn.bootcss.com/vue/2.5.13/vue.js"></script>
<style>
.active{color:red;}
</style>
</head>
<body>

<div id="app">
  <div>
    <div v-for="(item,index) in goods">
      {{item.value}}
      <div v-for="(food,foodIndex) in item.foods" class="default" :class="{'active':item.activeIndex == foodIndex}" @click="changeClass(index,foodIndex)">
        {{food.name}}
      </div>
    </div>
  </div>
</div>
</body>
</html>

<script>
var app = new Vue({
  el:'#app',
  data:{
    goods:[
      {value:'食物',foods:[{name:1},{name:2},{name:3},{name:4}],activeIndex:null},
      {value:'菜',foods:[{name:1},{name:2},{name:3},{name:4}],activeIndex:null},
      {value:'飲料',foods:[{name:1},{name:2},{name:3},{name:4}],activeIndex:null}
    ],
  },
  methods:{
    changeClass:function(index,foodIndex){
      if(this.goods[index].activeIndex == foodIndex){
        this.goods[index].activeIndex = null;
      }else{
        this.goods[index].activeIndex = foodIndex;
      }
    }
  }
})
</script>
落殤 回答

圖片描述

將這些內(nèi)容單獨(dú)封裝為一個(gè)組件,通過(guò)給組件傳值,組件間數(shù)據(jù)互不影響,可以實(shí)現(xiàn)

哎呦喂 回答

this.$nextTick(function(){}