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

鍍金池/ 問答/ 人工智能問答
賤人曾 回答

你的 maatwebsite/excel 安裝就已經(jīng)報錯了。maatwebsite/excel 2.0 版本只支持到 laravel 5.2

composer update maatwebsite/excel -vvv

先把它更新一下。

雨蝶 回答

從log中 , 你用的可能是predis擴(kuò)展 .
剩余我只能靠猜測 , 根據(jù)log看 , 應(yīng)該是你的php在連接redis的時候出問題了 .
所以 , 我大概提幾個點(diǎn) , 你檢查下 , 或許有幫助 .

  1. 檢查redis服務(wù)狀態(tài) , 是否啟動

  2. 檢查redis的host地址 和 監(jiān)聽的port , 是不是如圖中所示

  3. 最后 , 如果1和2都沒問題 , 檢查一下防火墻配置 , 除此之外 , 如果你用的云服務(wù)器 , 檢查一下云服務(wù)廠商的Web控制臺提供的安全策略組中該port的開放權(quán)限 .

賤人曾 回答

1、set進(jìn)去的數(shù)據(jù)就是有序和不重復(fù)的,所以不會出現(xiàn)重復(fù)的情況
2、你每次執(zhí)行成功之后就要刪除集合里面的數(shù)據(jù)
3、如果執(zhí)行失敗就將失敗的數(shù)據(jù)存放在另一個集合中使用多線程進(jìn)行同步處理

慢半拍 回答

服務(wù)器需要加 Access-Control-Allow-Credentials: true 這個頭部,且指明 Access-Control-Allow-Origin: http://a.com 這種的具體允許的域名。

js 中需要在 XMLHttpRequest 對象上添加 new XMLHttpRequest().withCredentials = true

妖妖 回答

CacheManager是CacheManager
SessionDAO是SessionDAO
兩者的職責(zé)不一樣

SessionDAO可以實(shí)現(xiàn)有緩存的,也可以實(shí)現(xiàn)沒有的

對于你的問題
想Session存于Redis,自然實(shí)現(xiàn)Redis的SessionDAO就行
而CacheManager不僅僅用于CachingSessionDAO,還有CachingRealm

老梗 回答

api為你的請求固定前綴,自行更換

location /api {
  proxy_pass  http://localhost:8080/api;
}

具體可參考 https://www.thinktxt.com/ngin...

司令 回答

@ExceptionHandler不是可以捕獲全局異常進(jìn)行處理?

焚音 回答

這種節(jié)點(diǎn)叫葉子節(jié)點(diǎn)!

  • 如果是一棵順序存儲的完全二叉樹,那么后面一半的節(jié)點(diǎn)都是葉子節(jié)點(diǎn)。
  • 如果是一棵索引樹,可以建立到葉節(jié)點(diǎn)的索引以減少遍歷次數(shù)。
  • 如果是一般普通的樹(沒有任何特殊的地方),那么只能遍歷,沒有別的方法
青黛色 回答
排查了3天,最后可算是把 這個問題解決了,最后還是有完完全全的刨析了一次,scrapy-redis的源碼才找到問題.排查這個,要從爬蟲運(yùn)行后,Redis中的隊(duì)列情況來入手

排查思路

  • 首先查看Redis中的請求隊(duì)列的情況,發(fā)現(xiàn)在執(zhí)行過程中只有存儲指紋過濾的隊(duì)列和item的隊(duì)列,沒有存儲Request的隊(duì)列
  • 查看源碼發(fā)現(xiàn),scrapy-redis在將請求入隊(duì)列和出隊(duì)列時,采用的是,將請求序列化后進(jìn)行l(wèi)push和lpop后反序列化
  • 然后開啟斷點(diǎn)調(diào)試模式。在request lpush后,查看redis的情況,這時在redis中會出現(xiàn)key:reuqest的隊(duì)列,但是只有一個請求
  • 繼續(xù)斷點(diǎn)發(fā)現(xiàn) 在lpop后,由于只向redis中添加了一個request,所以在lpop后,list中就沒有元素了,redis會自動把list刪除
  • 所以這時,另一個爬蟲在查詢主機(jī)的redis請求隊(duì)列時,是查詢不到任何request的,所以是一直等待的狀態(tài)。
  • 這個跟爬取的數(shù)據(jù)結(jié)構(gòu)有感,爬取的是一個分頁的列表數(shù)據(jù),是在解析完當(dāng)前頁面后,才會生成下一頁的請求的。是深度優(yōu)先的模式
  • 每次只生成一個請求,所以redis請求隊(duì)列維護(hù)的也只有一個請求。所以就造成這樣的問題
  • 出現(xiàn)問題的代碼如下

        # 單頁面解析完成,開始構(gòu)建下一頁的數(shù)據(jù)
        next_page_link = response.xpath('//div[@class="grid-8"]/div[@class="navigation margin-20"]/a[@class="next page-numbers"]/@href').extract_first()

        if next_page_link is None or len(next_page_link) == 0:
            log.logger.info('completed all page request')

        else:
            log.logger.info('will request next page and request url is %s'%next_page_link)
            #問題出現(xiàn)這這里,每次只生成一個request,所以 redis隊(duì)列維護(hù)的也只有一個請求
            yield Request(url=next_page_link)

解決辦法

  • 采用廣度優(yōu)先的模式進(jìn)行抓取
  • 獲取爬取的總頁數(shù),進(jìn)行提取總頁碼,生成請求連接
  • 獲取待爬取的所有頁面的請求,循環(huán)入redis隊(duì)列,可解決這個問題
  • 代碼如下
        if self.already_push_all_request is not True:
            page_list_html_a = response.xpath('//div[@class="grid-8"]/div[@class="navigation margin-20"]/a[@class="page-numbers"]')
            last_page_list_html_a = page_list_html_a[-1]
            last_page_index = last_page_list_html_a.xpath('text()').extract_first()
            print(type(last_page_index))
            last_index_number = int(last_page_index)
            print last_index_number
            format_url = 'http://python.jobbole.com/all-posts/page/{0}/'
            next_page_index = 2
            while next_page_index <= last_index_number:
                next_page_request_url = format_url.format(next_page_index)
                print(' will lpush to redis and url is %s'%next_page_request_url)
                yield Request(url=next_page_request_url)
                next_page_index += 1
            self.already_push_all_request = True
莓森 回答

安裝完成,驗(yàn)證是出來1234那種列表嗎?

伐木累 回答

此問題可以抽象一點(diǎn),
可以利用 foreach表驅(qū)動法 來簡化 if 判斷。
示例代碼如下:

<?php

/**
 * 假設(shè):
 *  甲 => $a
 *  乙 => $b
 *  丙 => $c
 *  丁 => $d
 */
const JIA   = 0;
const YI    = 1;
const BING  = 2;
const DING  = 3;

/* 應(yīng)該做什么事的方法映射表 */
$do_func_map = array(
    JIA     => function () { echo '甲去做一些事'; },
    YI      => function () { echo '乙去做一些事'; },
    BING    => function () { echo '丙去做一些事'; },
    DING    => function () { echo '丁去做一些事'; },
);

/* 各身份在家的情況 */
$conditon = array (
    JIA     => 0,
    YI      => 0,
    BING    => 1,
    DING    => 1
);

/* 去做事了 */
foreach ($conditon as $role => $role_cond) {
    if ($role_cond) {
        call_user_func($do_func_map[$role]);
        break;
    }
}

結(jié)果如下:

?  answer git:(master) ? php run.php
丙去做一些事
影魅 回答

try:

except...

淺時光 回答

這個問題太泛,百度搜一下,有很多有價值的東西。

單眼皮 回答

這個問題,先要知道**什么是緩存?

    緩存就是在內(nèi)存中存儲的數(shù)據(jù)備份,當(dāng)數(shù)據(jù)沒有發(fā)生本質(zhì)改變的時候,我們就不讓數(shù)據(jù)的查詢?nèi)?    
數(shù)據(jù)庫進(jìn)行操作,而去內(nèi)存中取數(shù)據(jù),這樣就大大降低了數(shù)據(jù)庫的讀寫次數(shù),而且從內(nèi)存中讀數(shù)據(jù)

的速度比去數(shù)據(jù)庫查詢要快一些,這樣同時又提高了效率。

而為什么使用緩存呢

    在開發(fā)網(wǎng)站的時候如果有一些數(shù)據(jù)在短時間之內(nèi)不會發(fā)生變化,而它們還要被頻繁訪問,為了
    
提高用戶的請求速度和降低網(wǎng)站的負(fù)載,就把這些數(shù)據(jù)放到一個讀取速度更快的介質(zhì)上(或者
    
是通過較少的計算量就可以獲得該數(shù)據(jù)),該行為就稱作對該數(shù)據(jù)的緩存。


如題:如果操作很頻繁,建議放到不要放緩存里

  如果操作不頻繁,那么只需要在接口使用完后,如果更改了數(shù)據(jù),那么必須要刷新redis的數(shù)據(jù)。不要把     

redis太當(dāng)回事,正常操作就可以了



膽怯 回答
let arr = ["", "A001", "V002", "V003", "_123", "133", "2334", "大124", "小afaf", "a001", "v004", "馬龍", "中華", "中國"];
arr.sort(function(a, b) {
    let max_length = Math.max(a.length, b.length),
        compare_result = 0,
        i = 0;
    while(compare_result === 0 && i < max_length) {
        compare_result = compare_char(a.charAt(i), b.charAt(i));
        i++;
    }
    return compare_result;
});

function compare_char(a, b) {
    var a_type = get_char_type(a),
        b_type = get_char_type(b);
    if(a_type === b_type && a_type < 4) {
        return a.charCodeAt(0) - b.charCodeAt(0);
    } else if(a_type === b_type && a_type === 4) {
        return a.localeCompare(b);
    } else {
        return a_type - b_type;
    }
}

function get_char_type(a) {
    var return_code = {
        nul: 0,
        symb: 1,
        number: 2,
        upper: 3,
        lower: 4,
        other: 5
    }
    if(a === '') {
        return return_code.nul; //空
    } else if(a.charCodeAt(0) > 127) {
        return return_code.other;
    } else if(a.charCodeAt(0) > 122) {
        return return_code.symb;
    } else if(a.charCodeAt(0) > 96) {
        return return_code.lower;
    } else if(a.charCodeAt(0) > 90) {
        return return_code.symb;
    } else if(a.charCodeAt(0) > 64) {
        return return_code.upper;
    } else if(a.charCodeAt(0) > 58) {
        return return_code.symb;
    } else if(a.charCodeAt(0) > 47) {
        return return_code.number;
    } else {
        return return_code.symb;
    }
}
console.log(arr);

寫的亂了點(diǎn)湊活看吧

墨小白 回答

運(yùn)行的時候報錯:

ReferenceError: Can't find variable: TAC
愚念 回答

301只是建議你修改書簽(302就不建議),瀏覽器是不會自動幫你修改書簽的,需要手工修改。而大部分瀏覽器卻會在連接網(wǎng)站成功后自動更新最新的書簽圖標(biāo)。

瘋浪 回答

不知道我現(xiàn)在救火還來不來得及。

不要使用 setnx 來創(chuàng)建一個可過期的鎖,請使用 set key value nx ex time (SET 文檔地址)來創(chuàng)建。這樣能確保 setnx 和 expire 結(jié)合為一個原子操作。

如果先 setnx 再 expire,這個操作不是原子的,可能引發(fā)新的問題。比如 setnx 之后程序異常崩潰了,導(dǎo)致該 key 永不過期,從而引起其他請求鎖的線程一直阻塞。

希望現(xiàn)在救火還來得及。

未命名 回答

其它區(qū)別我說不上來,但個人理解flume是用于采集日志文件的,日志文件本身沒有調(diào)用kafka api的能力,所以需要用到flume、logstash、filebeat等工具來作采集,如果是應(yīng)用程序向kafka輸出信息的話,用kafka api應(yīng)該沒有問題的吧