• Nginx 429 код ошибки?

    kovalenko_jul_s
    @kovalenko_jul_s Автор вопроса
    php-fpm кидал 429
    Ответ написан
    Комментировать
  • Laravel 5.5 HTTP->HTTPS?

    kovalenko_jul_s
    @kovalenko_jul_s Автор вопроса
    Проблема была в том, что куки с токенами выставлялись не на тот домен.
    Решение: в конфиге session.php исправить

    'domain' => '.app.ru',
    Ответ написан
    Комментировать
  • Как в Golang записывать в MySql Unicode?

    kovalenko_jul_s
    @kovalenko_jul_s Автор вопроса
    Проблема в emoji. Некоторые из них кодируются 4 битами.

    Нашла 2 решения.

    1ое:
    ALTER TABLE my_table MODIFY data LONGTEXT CHARACTER SET utf8mb4;


    2ое:
    func RemoveEmoji(str string) string {
        var emojiiPattern = "[\\x{1f004}\\x{1f0cf}\\x{1f170}\\x{1f171}\\x{1f17e}\\x{1f17f}\\x{1f18e}\\x{1f191}-\\x{1f19a}\\x{1f201}\\x{1f202}\\x{1f21a}\\x{1f22f}\\x{1f232}-\\x{1f23a}\\x{1f250}\\x{1f251}\\x{1f300}-\\x{1f321}\\x{1f324}-\\x{1f393}\\x{1f396}\\x{1f397}\\x{1f399}-\\x{1f39b}\\x{1f39e}-\\x{1f3f0}\\x{1f3f3}-\\x{1f3f5}\\x{1f3f7}-\\x{1f4fd}\\x{1f4ff}-\\x{1f53d}\\x{1f549}-\\x{1f54e}\\x{1f550}-\\x{1f567}\\x{1f56f}\\x{1f570}\\x{1f573}-\\x{1f579}\\x{1f587}\\x{1f58a}-\\x{1f58d}\\x{1f590}\\x{1f595}\\x{1f596}\\x{1f5a5}\\x{1f5a8}\\x{1f5b1}\\x{1f5b2}\\x{1f5bc}\\x{1f5c2}-\\x{1f5c4}\\x{1f5d1}-\\x{1f5d3}\\x{1f5dc}-\\x{1f5de}\\x{1f5e1}\\x{1f5e3}\\x{1f5ef}\\x{1f5f3}\\x{1f5fa}-\\x{1f64f}\\x{1f680}-\\x{1f6c5}\\x{1f6cb}-\\x{1f6d0}\\x{1f6e0}-\\x{1f6e5}\\x{1f6e9}\\x{1f6eb}\\x{1f6ec}\\x{1f6f0}\\x{1f6f3}\\x{1f910}-\\x{1f918}\\x{1f980}-\\x{1f984}\\x{1f9c0}]|\\x{1f1e6}[\\x{1f1e8}-\\x{1f1ec}\\x{1f1ee}\\x{1f1f1}\\x{1f1f2}\\x{1f1f4}\\x{1f1f6}-\\x{1f1fa}\\x{1f1fc}\\x{1f1fd}\\x{1f1ff}]|\\x{1f1e7}[\\x{1f1e6}\\x{1f1e7}\\x{1f1e9}-\\x{1f1ef}\\x{1f1f1}-\\x{1f1f4}\\x{1f1f6}-\\x{1f1f9}\\x{1f1fb}\\x{1f1fc}\\x{1f1fe}\\x{1f1ff}]|\\x{1f1e8}[\\x{1f1e6}\\x{1f1e8}\\x{1f1e9}\\x{1f1eb}-\\x{1f1ee}\\x{1f1f0}-\\x{1f1f5}\\x{1f1f7}\\x{1f1fa}-\\x{1f1ff}]|\\x{1f1e9}[\\x{1f1ea}\\x{1f1ec}\\x{1f1ef}\\x{1f1f0}\\x{1f1f2}\\x{1f1f4}\\x{1f1ff}]|\\x{1f1ea}[\\x{1f1e6}\\x{1f1e8}\\x{1f1ea}\\x{1f1ec}\\x{1f1ed}\\x{1f1f7}-\\x{1f1fa}]|\\x{1f1eb}[\\x{1f1ee}-\\x{1f1f0}\\x{1f1f2}\\x{1f1f4}\\x{1f1f7}]|\\x{1f1ec}[\\x{1f1e6}\\x{1f1e7}\\x{1f1e9}-\\x{1f1ee}\\x{1f1f1}-\\x{1f1f3}\\x{1f1f5}-\\x{1f1fa}\\x{1f1fc}\\x{1f1fe}]|\\x{1f1ed}[\\x{1f1f0}\\x{1f1f2}\\x{1f1f3}\\x{1f1f7}\\x{1f1f9}\\x{1f1fa}]|\\x{1f1ee}[\\x{1f1e8}-\\x{1f1ea}\\x{1f1f1}-\\x{1f1f4}\\x{1f1f6}-\\x{1f1f9}]|\\x{1f1ef}[\\x{1f1ea}\\x{1f1f2}\\x{1f1f4}\\x{1f1f5}]|\\x{1f1f0}[\\x{1f1ea}\\x{1f1ec}-\\x{1f1ee}\\x{1f1f2}\\x{1f1f3}\\x{1f1f5}\\x{1f1f7}\\x{1f1fc}\\x{1f1fe}\\x{1f1ff}]|\\x{1f1f1}[\\x{1f1e6}-\\x{1f1e8}\\x{1f1ee}\\x{1f1f0}\\x{1f1f7}-\\x{1f1fb}\\x{1f1fe}]|\\x{1f1f2}[\\x{1f1e6}\\x{1f1e8}-\\x{1f1ed}\\x{1f1f0}-\\x{1f1ff}]|\\x{1f1f3}[\\x{1f1e6}\\x{1f1e8}\\x{1f1ea}-\\x{1f1ec}\\x{1f1ee}\\x{1f1f1}\\x{1f1f4}\\x{1f1f5}\\x{1f1f7}\\x{1f1fa}\\x{1f1ff}]|\\x{1f1f4}\\x{1f1f2}|\\x{1f1f5}[\\x{1f1e6}\\x{1f1ea}-\\x{1f1ed}\\x{1f1f0}-\\x{1f1f3}\\x{1f1f7}-\\x{1f1f9}\\x{1f1fc}\\x{1f1fe}]|\\x{1f1f6}\\x{1f1e6}|\\x{1f1f7}[\\x{1f1ea}\\x{1f1f4}\\x{1f1f8}\\x{1f1fa}\\x{1f1fc}]|\\x{1f1f8}[\\x{1f1e6}-\\x{1f1ea}\\x{1f1ec}-\\x{1f1f4}\\x{1f1f7}-\\x{1f1f9}\\x{1f1fb}\\x{1f1fd}-\\x{1f1ff}]|\\x{1f1f9}[\\x{1f1e6}\\x{1f1e8}\\x{1f1e9}\\x{1f1eb}-\\x{1f1ed}\\x{1f1ef}-\\x{1f1f4}\\x{1f1f7}\\x{1f1f9}\\x{1f1fb}\\x{1f1fc}\\x{1f1ff}]|\\x{1f1fa}[\\x{1f1e6}\\x{1f1ec}\\x{1f1f2}\\x{1f1f8}\\x{1f1fe}\\x{1f1ff}]|\\x{1f1fb}[\\x{1f1e6}\\x{1f1e8}\\x{1f1ea}\\x{1f1ec}\\x{1f1ee}\\x{1f1f3}\\x{1f1fa}]|\\x{1f1fc}[\\x{1f1eb}\\x{1f1f8}]|\\x{1f1fd}\\x{1f1f0}|\\x{1f1fe}[\\x{1f1ea}\\x{1f1f9}]|\\x{1f1ff}[\\x{1f1e6}\\x{1f1f2}\\x{1f1fc}]";
        var emojiRx = regexp.MustCompile(emojiiPattern)
        return emojiRx.ReplaceAllString(str, `[emoji]`)
    }

    Но это слишком долго работает.
    Ответ написан
    Комментировать
  • Как в Golang делать запросы к SphinxSearch?

    kovalenko_jul_s
    @kovalenko_jul_s Автор вопроса
    Ошибка возникает потому, что создается слишком много соединений. Точнее, даже если соединение одно, но запросы через него отправляются параллельно, все равно возникает ошибка. С MySql такая же история. Даже если делать запросы не через tcp сокет, а через unix сокет.
    Решение - ограничивать количество параллельных запросов.
    Ответ написан
  • Многопоточность в python?

    kovalenko_jul_s
    @kovalenko_jul_s Автор вопроса
    import asyncio
    import requests
    from mysql import MySql
    import concurrent.futures
    
    def get_data(id):
        mysql = MySql()
    
        while True:
            resp = requests.get("http://site.ru/path?id=" + id)
            mysql.insert_data(resp)
    
        return 1
    
    
    async def main():
        with concurrent.futures.ThreadPoolExecutor(max_workers=20) as executor:
            ids = [1,2,3,4,5, ... , N];
    
            loop = asyncio.get_event_loop()
            futures = [
                loop.run_in_executor(
                    executor, 
                    get_data, 
                    id
                )
                for id in ids
            ]
            for response in await asyncio.gather(*futures):
                pass
    
    
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())
    Ответ написан
    2 комментария
  • Как делать запросы к mysql на python3.5?

    kovalenko_jul_s
    @kovalenko_jul_s Автор вопроса
    Свою проблему я решила с помощью MySQLdb.

    1. Распарсила json-файл в двумерный список
    values = [[a1,a2,...], [b1, b2,...], ....]
    2. Сформировала строку запроса
    query = "INSERT INTO ads_irr_ru_content (col1, col2, .... ,col5) VALUES "  + 
        ",".join("(%s,%s,%s,%s,%s)" for _ in values)

    3. Собрала вставляемые данные
    flattened_values = [item for sublist in values for item in sublist]

    4. Вставила данные:)
    cur.execute(query, flattened_values)
    Ответ написан
    Комментировать
  • Как в Docker в контейнер передать параметры?

    kovalenko_jul_s
    @kovalenko_jul_s Автор вопроса
    Из Dockerfile CMD удалить.
    Собрать образ.

    А запускать так:
    sudo docker run imagename phantomjs test.js param
    Ответ написан
    Комментировать
  • Получаю timezone, как получи из не го время?

    <?php
    $date = new DateTime("now", new DateTimeZone('America/New_York') );
    echo $date->format('Y-m-d H:i:s');
    Ответ написан
    Комментировать
  • Как в phantomJs дождаться загрузки страницы?

    kovalenko_jul_s
    @kovalenko_jul_s Автор вопроса
    var count_load = 0;
    page_get_code.onLoadFinished = function(status) {
        count_load++;
        if(count_load == 2){
            page_get_code.evaluate(function() {
                if(document.getElementById("install_allow")){
                    document.getElementById("install_allow").click();
                }
            });
        }
    };
    Ответ написан
    Комментировать
  • Как отправлять отправлять запросы через мой сервер?

    kovalenko_jul_s
    @kovalenko_jul_s Автор вопроса
    $headers = explode(PHP_EOL, trim($headers));
    ошибка была здесь.
    надо не PHP_EOL, а "\r\n";

    и еще здесь curl_setopt($curl, CURLOPT_HTTPHEADER, getallheaders());
    getallheaders() возвращает ассоциативный массив. а необходимо массив вида
    ['Content-type: text/plain', 'Content-length: 100']
    Ответ написан
    Комментировать
  • Позиционирование div, как совместить два div?

    То есть:
    <style>
    	div{
    		width: 100px; 
    		height: 100px;
    	}
    	#one{
    		background-color: pink;
    	}
    	#two{
    		background-color: yellow;
    	}
    </style>
    
    <div id='one' style='position: absolute;'></div>
    <div style='display: inline-block'></div> 
    <div id='two' style='display: inline-block; margin-left: -4px'></div>
    
    <br><br>
    
    <div id='one' style='position: absolute;'></div>
    <div id='two' style='margin-left: 100px'></div>
    
    <br><br>
    
    <div id='one' style='position: absolute;'></div>
    <div id='two' style='position: relative; left: 100px'></div>
    Ответ написан
    Комментировать
  • Как искать в MongoDB на php по _id?

    kovalenko_jul_s
    @kovalenko_jul_s Автор вопроса
    В общем, по ходу дела при очередном обновлении драйвера mongo для php выскочил интересный баг.
    По итогу работает конструкция
    ...
    ->where(['_id' => (int)$id])
    ->orWhere(['_id' => (float)$id])


    Работает и с NumberLong, и с обычным Int.
    Ответ написан
    Комментировать