基於 abp vNext 和 .NET Core 開發博客項目 – 定時任務最佳實戰(三)_網頁設計公司

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

系列文章

  1. 基於 abp vNext 和 .NET Core 開發博客項目 – 使用 abp cli 搭建項目
  2. 基於 abp vNext 和 .NET Core 開發博客項目 – 給項目瘦身,讓它跑起來
  3. 基於 abp vNext 和 .NET Core 開發博客項目 – 完善與美化,Swagger登場
  4. 基於 abp vNext 和 .NET Core 開發博客項目 – 數據訪問和代碼優先
  5. 基於 abp vNext 和 .NET Core 開發博客項目 – 自定義倉儲之增刪改查
  6. 基於 abp vNext 和 .NET Core 開發博客項目 – 統一規範API,包裝返回模型
  7. 基於 abp vNext 和 .NET Core 開發博客項目 – 再說Swagger,分組、描述、小綠鎖
  8. 基於 abp vNext 和 .NET Core 開發博客項目 – 接入GitHub,用JWT保護你的API
  9. 基於 abp vNext 和 .NET Core 開發博客項目 – 異常處理和日誌記錄
  10. 基於 abp vNext 和 .NET Core 開發博客項目 – 使用Redis緩存數據
  11. 基於 abp vNext 和 .NET Core 開發博客項目 – 集成Hangfire實現定時任務處理
  12. 基於 abp vNext 和 .NET Core 開發博客項目 – 用AutoMapper搞定對象映射
  13. 基於 abp vNext 和 .NET Core 開發博客項目 – 定時任務最佳實戰(一)
  14. 基於 abp vNext 和 .NET Core 開發博客項目 – 定時任務最佳實戰(二)
  15. 基於 abp vNext 和 .NET Core 開發博客項目 – 定時任務最佳實戰(三)
  16. 基於 abp vNext 和 .NET Core 開發博客項目 – 博客接口實戰篇(一)
  17. 基於 abp vNext 和 .NET Core 開發博客項目 – 博客接口實戰篇(二)
  18. 基於 abp vNext 和 .NET Core 開發博客項目 – 博客接口實戰篇(三)
  19. 基於 abp vNext 和 .NET Core 開發博客項目 – 博客接口實戰篇(四)
  20. 基於 abp vNext 和 .NET Core 開發博客項目 – 博客接口實戰篇(五)
  21. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(一)
  22. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(二)
  23. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(三)
  24. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(四)
  25. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(五)
  26. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(六)
  27. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(七)
  28. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(八)
  29. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(九)
  30. 基於 abp vNext 和 .NET Core 開發博客項目 – 終結篇之發布項目

上一篇(https://www.cnblogs.com/meowv/p/12974439.html)完成了全網各大平台的熱點新聞數據的抓取,本篇繼續圍繞抓取完成后的操作做一個提醒。當每次抓取完數據后,自動發送郵件進行提醒。

在開始正題之前還是先玩一玩之前的說到卻沒有用到的一個庫PuppeteerSharp

PuppeteerSharp:Headless Chrome .NET API ,它運用最多的應該是自動化測試和抓取異步加載的網頁數據,更多介紹可以看GitHub:https://github.com/hardkoded/puppeteer-sharp 。

我這裏主要來試試它的異步抓取功能,同時它還能幫我們生成網頁截圖或者PDF。

如果沒有安裝可以先安裝一下,在.BackgroundJobs層安裝PuppeteerSharpInstall-Package PuppeteerSharp

在Jobs文件夾下新建一個PuppeteerTestJob.cs,繼承IBackgroundJob,同樣是在ExecuteAsync()方法中執行操作。

//PuppeteerTestJob.cs
using System;
using System.Threading.Tasks;

namespace Meowv.Blog.BackgroundJobs.Jobs.PuppeteerTest
{
    public class PuppeteerTestJob : IBackgroundJob
    {
        public async Task ExecuteAsync()
        {
            throw new NotImplementedException();
        }
    }
}

使用 await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision); 第一次檢測到沒有瀏覽器文件會默認幫我們下載 chromium 瀏覽器。

DownloadAsync(...)可以指定 Chromium 版本,BrowserFetcher.DefaultRevision 下載當前默認最穩定的版本。

然後配置瀏覽器啟動的方式。

using var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
    Headless = true,
    Args = new string[] { "--no-sandbox" }
});

感興趣的可以自己看看LaunchOptions有哪些參數,我這裏指定了Headless = true 以無頭模式運行瀏覽器,然後加了一個啟動參數 “–no-sandbox”。針對Linux環境下,如果是運行在 root 權限下,在啟動 Puppeteer 時要添加 “–no-sandbox” 參數,否則 Chromium 會啟動失敗。

我們打開一個異步加載的網頁,然後獲取到頁面加載完后的HTML,以我個人博客中的某個單頁為例:https://meowv.com/wallpaper 。

//PuppeteerTestJob.cs
using PuppeteerSharp;
using System.Threading.Tasks;

namespace Meowv.Blog.BackgroundJobs.Jobs.PuppeteerTest
{
    public class PuppeteerTestJob : IBackgroundJob
    {
        public async Task ExecuteAsync()
        {
            await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);

            using var browser = await Puppeteer.LaunchAsync(new LaunchOptions
            {
                Headless = true,
                Args = new string[] { "--no-sandbox" }
            });

            using var page = await browser.NewPageAsync();

            await page.SetViewportAsync(new ViewPortOptions
            {
                Width = 1920,
                Height = 1080
            });

            var url = "https://meowv.com/wallpaper";
            await page.GoToAsync(url, WaitUntilNavigation.Networkidle0);

            var content = await page.GetContentAsync();
        }
    }
}

page.SetViewportAsync()設置網頁預覽大小,page.GoToAsync()語法打開網頁,WaitUntilNavigation.Networkidle0等待網頁加載完畢,使用page.GetContentAsync()獲取到HTML。

新建擴展方法,調用這個PuppeteerTestJobExecuteAsync()方法,調試看看效果。

HTML已經出來了,此時該幹嘛就幹嘛就可以了。

第一次運行可能會很慢,因為如果你本地不存在 Chromium 是會去幫我們下載的,因為網絡原因可能會下載的很慢,所以推薦大家手動下載。

可以使用淘寶的源:https://npm.taobao.org/mirrors/chromium-browser-snapshots/ 。

要注意的是,下載完成后的解壓的路徑不能出錯,默認下載地址是在啟動目錄下面。

Windows:..\.local-chromium\Win64-706915\chrome-win 、 Linux:../.local-chromium/Linux-706915/chrome-linux

接下來試試生成PDF和保存圖片功能,使用方式也很簡單。

await page.PdfAsync("meowv.pdf",new PdfOptions { });
await page.ScreenshotAsync("meowv.png", new ScreenshotOptions
{
    FullPage = true,
    Type = ScreenshotType.Png
});

這裏只做簡單的展示,page.PdfAsync()直接生成PDF文件,同時還有很多方法可以自己調用page.試試,PdfOptions選項中可以設置各種參數。

page.ScreenshotAsync()保存圖片,ScreenshotOptions中FullPage可以設置保存圖片為全屏模式,圖片格式為Png類型。

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

可以看到項目根目錄已經生成了圖片和PDF,感覺去試試吧。

接下里來實現發送郵件的功能。

我這裏發郵件的賬號是用的騰訊企業郵箱,也可以用普通郵箱開通SMTP服務即可。

appsettings.json配置收發郵件的賬號等信息。

//appsettings.json
  "Email": {
    "Host": "smtp.exmail.qq.com",
    "Port": 465,
    "UseSsl": true,
    "From": {
      "Username": "123@meowv.com",
      "Password": "[Password]",
      "Name": "MEOWV.COM",
      "Address": "123@meowv.com"
    },
    "To": [
      {
        "Name": "test1",
        "Address": "test1@meowv.com"
      },
      {
        "Name": "test2",
        "Address": "test2@meowv.com"
      }
    ]
  }

然後再AppSettings中讀取配置的項。

//AppSettings.cs
public static class Email
{
    /// <summary>
    /// Host
    /// </summary>
    public static string Host => _config["Email:Host"];

    /// <summary>
    /// Port
    /// </summary>
    public static int Port => Convert.ToInt32(_config["Email:Port"]);

    /// <summary>
    /// UseSsl
    /// </summary>
    public static bool UseSsl => Convert.ToBoolean(_config["Email:UseSsl"]);

    /// <summary>
    /// From
    /// </summary>
    public static class From
    {
        /// <summary>
        /// Username
        /// </summary>
        public static string Username => _config["Email:From:Username"];

        /// <summary>
        /// Password
        /// </summary>
        public static string Password => _config["Email:From:Password"];

        /// <summary>
        /// Name
        /// </summary>
        public static string Name => _config["Email:From:Name"];

        /// <summary>
        /// Address
        /// </summary>
        public static string Address => _config["Email:From:Address"];
    }

    /// <summary>
    /// To
    /// </summary>
    public static IDictionary<string, string> To
    {
        get
        {
            var dic = new Dictionary<string, string>();

            var emails = _config.GetSection("Email:To");
            foreach (IConfigurationSection section in emails.GetChildren())
            {
                var name = section["Name"];
                var address = section["Address"];

                dic.Add(name, address);
            }
            return dic;
        }
    }
}

分別介紹下每項的含義:

  • Host:發送郵件服務器地址。
  • Port:服務器地址端口號。
  • UseSsl:是否使用SSL方式。
  • From:發件人的賬號密碼,名稱及郵箱地址,一般郵箱地址和賬號是相同的。
  • To:收件人郵箱列表,也包含名稱和郵箱地址。

收件人郵箱列表我將其讀取為IDictionary<string, string>了,key是名稱,value是郵箱地址。

接着在.ToolKits層添加一個EmailHelper.cs,收發郵件我選擇了MailKitMailKit兩個庫,沒有安裝的先安裝一下,Install-Package MailKitInstall-Package MimeKit

直接新建一個發送郵件的方法SendAsync(),按照要求將基本的配置信息填進去,然後直接調用即可。

//EmailHelper.cs
using MailKit.Net.Smtp;
using Meowv.Blog.Domain.Configurations;
using MimeKit;
using System.Linq;
using System.Threading.Tasks;

namespace Meowv.Blog.ToolKits.Helper
{
    public static class EmailHelper
    {
        /// <summary>
        /// 發送Email
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        public static async Task SendAsync(MimeMessage message)
        {
            if (!message.From.Any())
            {
                message.From.Add(new MailboxAddress(AppSettings.Email.From.Name, AppSettings.Email.From.Address));
            }
            if (!message.To.Any())
            {
                var address = AppSettings.Email.To.Select(x => new MailboxAddress(x.Key, x.Value));
                message.To.AddRange(address);
            }

            using var client = new SmtpClient
            {
                ServerCertificateValidationCallback = (s, c, h, e) => true
            };
            client.AuthenticationMechanisms.Remove("XOAUTH2");

            await client.ConnectAsync(AppSettings.Email.Host, AppSettings.Email.Port, AppSettings.Email.UseSsl);
            await client.AuthenticateAsync(AppSettings.Email.From.Username, AppSettings.Email.From.Password);
            await client.SendAsync(message);
            await client.DisconnectAsync(true);
        }
    }
}

SendAsync(...)接收一個參數MimeMessage對象,這樣就完成了一個通用的發郵件方法,接着我們去需要發郵件的地方構造MimeMessage,調用SendAsync()

//WallpaperJob.cs
...
    // 發送Email
    var message = new MimeMessage
    {
        Subject = "【定時任務】壁紙數據抓取任務推送",
        Body = new BodyBuilder
        {
            HtmlBody = $"本次抓取到{wallpapers.Count()}條數據,時間:{DateTime.Now:yyyy-MM-dd HH:mm:ss}"
        }.ToMessageBody()
    };
    await EmailHelper.SendAsync(message);
...
//HotNewsJob.cs
...
    // 發送Email
    var message = new MimeMessage
    {
        Subject = "【定時任務】每日熱點數據抓取任務推送",
        Body = new BodyBuilder
        {
            HtmlBody = $"本次抓取到{hotNews.Count()}條數據,時間:{DateTime.Now:yyyy-MM-dd HH:mm:ss}"
        }.ToMessageBody()
    };
    await EmailHelper.SendAsync(message);
...

分別在兩個爬蟲腳本中添加發送Email,MimeMessage中設置了郵件主題Subject,正文Body,最後調用await EmailHelper.SendAsync(message)執行發送郵件操作。

編譯運行執行兩個定時任務,看看能否收到郵件提醒。

成功了,郵箱收到了兩條提醒。

還有一種比較特殊的用法,也介紹一下,如果想要發送帶圖片的郵件怎麼操作呢?注意不是附件,是將圖片內嵌在郵箱中。

一般常規都是有郵件模板的,將圖片的具體地址插入到img標籤中,這就不說了,這裏選擇另外一種方式。以前面添加的PuppeteerTestJob為例,正好我們生成了一張圖片的。將這種圖片以郵件的形式發出去。

public class PuppeteerTestJob : IBackgroundJob
{
    public async Task ExecuteAsync()
    {
        var path = Path.Combine(Path.GetTempPath(), "meowv.png");
        
        ...
        
        await page.ScreenshotAsync(path, new ScreenshotOptions
        {
            FullPage = true,
            Type = ScreenshotType.Png
        });

        // 發送帶圖片的Email
        var builder = new BodyBuilder();

        var image = builder.LinkedResources.Add(path);
        image.ContentId = MimeUtils.GenerateMessageId();

        builder.HtmlBody = "當前時間:{0}.<img src=\"cid:{1}\"/>".FormatWith(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), image.ContentId);

        var message = new MimeMessage
        {
            Subject = "【定時任務】每日熱點數據抓取任務推送",
            Body = builder.ToMessageBody()
        };
        await EmailHelper.SendAsync(message);
    }
}

先確定我們生成圖片的路徑 path ,將圖片生成Message-Id,然後賦值給ContentId,給模板中<img src=\"cid:{1}\"/>圖片標籤cid賦上值在調用發送郵件方法即可。

成功收到郵件,搞定了,你學會了嗎?

開源地址:https://github.com/Meowv/Blog/tree/blog_tutorial

基於 abp vNext 和 .NET Core 開發博客項目,截止到本篇所用到的基礎模塊算是寫完了,如果對您有些許幫助請多多分享,我的所有原創文章都首發於我發個人公眾號:阿星Plus 。

下面有二維碼可以直接掃一掃,如果你不想關注也沒有關係,博客園我也會同步過來的。

不管因為什麼,如果你在學習這個項目或者跟着我一起做這個項目,裏面肯定還是有瑕疵的,大家可以根據自己的需求自行修改。

接下來應該還會更新博客所用到的接口,這個純屬於CRUD,可以自己先行開發,我這邊目前也不知道以什麼樣的方式展現給大家是最好的選擇。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

Jmeter(五) – 從入門到精通 – 創建網絡計劃實戰和創建高級Web測試計劃(詳解教程),Jmeter(三) – 從入門到精通 – 測試計劃(Test Plan)的元件(詳解教程),Jmeter(三) – 從入門到精通 – 測試計劃(Test Plan)的元件(詳解教程)_台北網頁設計

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

擁有後台管理系統的網站,將擁有強大的資料管理與更新功能,幫助您隨時新增網站的內容並節省網站開發的成本。

1.簡介

  上一篇中宏哥已經將其的理論知識介紹了一下,這一篇宏哥就帶着大家一步一步的把上一篇介紹的理論知識實踐一下,然後再說一下如何創建高級web測試計劃。

2.網絡計劃實戰

  通過上一篇的學習,宏哥將其分類為:

    (1)不需要登錄驗證身份就可以操作的。

    (2)需要登錄驗證身份之後才能操作的。

2.1不需要登錄

這裏宏哥就拿博客園來舉例子,如博客園,你不需要登錄驗證身份,就可以執行閱讀、查找和瀏覽博客園內的文章(前提是這些文章沒有設置“只允許註冊的用戶訪問”)。

2.1.1抓包

1.閱讀博客園文章

1、瀏覽器上輸入博客園地址,點擊文章::Jmeter(三) – 從入門到精通 – 測試計劃(Test Plan)的元件(詳解教程),如下圖所示:

2、fiddler抓包工具抓取博客園查找的過程。從下圖紅色圈住的部分可以看到查找的URL和請求查找發送的參數。如下圖所示:

2.1.2閱讀文章

按照抓包抓取到的參數,我們下一步就是用Jmeter模擬閱讀博客園文章:Jmeter(三) – 從入門到精通 – 測試計劃(Test Plan)的元件(詳解教程)。

1.建立一個測試計劃命名為:Test Blog Read Plan。如圖下所示:

2.選中測試計劃,添加線程組用戶,命名為:Blog User。如下圖所示:

注意:敲腦殼,敲黑板啦!!!宏哥這個就是一個用戶閱讀一次,如果要壓測你可以設置多個用戶同時閱讀。

3.選中線程組,添加一個HTTP Header Manager(HTTP信息頭管理器)。這個主要是為了避免Jmeter發送請求后,返回結果可能會出現狀態碼為403的錯誤。如下圖所示:

注意:敲腦殼,敲黑板啦!!!這裏HTTP信息頭管理器,主要添加一個參數User-Agent。根據你抓包的header來填寫即可。

4.選中線程組,設置一個http,發送http默認請求值,放入你需求測試的地址。這樣做的好處就是後邊的所有的http請求你就不再需要重複的寫這個測試地址了。如下圖所示:

注意:敲腦殼,敲黑板啦!!!宏哥本地搭建的Jenkins應用程序,那麼測試地址就很清楚了,這裏請求值填寫如下:

(1)protocol(協議:http or https):目前博客園是https協議,所以這裏填寫Protocol:https

(2)測試地址為:博客園的地址,不用啰嗦大家都知道了,Sever Name or IP:www.cnblogs.com

(3)Port:(博客園沒有端口)

5.選中線程組,添加一個http請求命名為:Read。如下圖所示:

注意:敲腦殼,敲黑板啦!!!宏哥本地搭建的Jenkins應用程序,那麼Read請求值,我們查看抓到登錄請求包(2.2.1)就很清楚了,這裏請求值填寫如下:

(1)protocol(協議:http or https):目前這個是本地搭建的http協議,所以這裏填寫Protocol:https

(2)測試地址為:本地搭建,不用啰嗦大家都知道了,Sever Name or IP:www.cnblogs.com

(3)Port:(博客園沒有端口)

(4)Method:是那種類型的請求就選擇那種,這裏選擇get

(5)Path:閱讀博客園文章的請求路徑

(6)Content Encoding:編碼宏哥這裏沒有填寫,如果出現亂碼,你可以填寫utf-8和Gb2312試一下,即可。

6.選中線程組,添加一個結果樹,命名為:Check Read Results,監聽閱讀博文是否成功。如下圖所示:

2.2需要登錄

同樣的這裏也拿博客園舉例子,你如果要發布隨筆、評論、點推薦等等的一系列操作,就需要你登錄驗證身份以後才能執行這些操作。但是由於博客園的登錄機制改變宏哥就不拿博客園舉例子,宏哥拿一個,宏哥在本地搭建的Jenkins的web應用程序來實戰一下,刪除一個job。但是這個job必須在登錄以後才能刪除,如果沒有登錄就會刪除失敗。

2.2.1抓包

1.登錄

1、瀏覽器上登錄jenkins,輸入賬號和密碼,點擊登錄。如下圖所示:

2、fiddler抓包工具抓取jenkins登錄的過程。從下圖紅色圈住的部分可以看到登錄的URL和請求登錄發送的參數。如下圖所示:

2.刪除

1、我們前面講過登錄后新建任務后,那可以繼續接着操作:刪除剛才新建的任務。如下圖所示:

 

2、用fiddler抓包,抓到刪除新建任務的請求,從抓包結果可以看出,傳的data參數是Jenkins-Crumb。如下圖所示:

 

3.這個Jenkins-Crumb哪裡來的呢?可以看上個請求的body。如下圖所示:

2.2.2登錄

按照抓包抓取到的參數,我們下一步就是用Jmeter模擬登錄到Jenkins。

1.建立一個測試計劃命名為:Test Jenkins Plan。如下圖所示:

2.選中測試計劃,添加線程組用戶,命名為:Jenkins User。如下圖所示:

注意:敲腦殼,敲黑板啦!!!宏哥這個就是一個用戶登錄一次,如果要壓測你可以設置多個用戶同時登錄。

3.選中線程組,添加一個HTTP Header Manager(HTTP信息頭管理器)。這個主要是為了避免Jmeter發送請求后,返回結果可能會出現狀態碼為403的錯誤。如下圖所示:

注意:敲腦殼,敲黑板啦!!!這裏HTTP信息頭管理器,主要添加兩個參數User-Agent和Content-Type。根據你抓包的header來填寫即可。

4.選中線程組,設置一個http,發送http默認請求值,放入你需求測試的地址。這樣做的好處就是後邊的所有的http請求你就不再需要重複的寫這個測試地址了。如下圖所示:

注意:敲腦殼,敲黑板啦!!!宏哥本地搭建的Jenkins應用程序,那麼測試地址就很清楚了,這裏請求值填寫如下:

(1)protocol(協議:http or https):目前這個是本地搭建的http協議,所以這裏填寫Protocol:http

(2)測試地址為:本地搭建,不用啰嗦大家都知道了,Sever Name or IP:localhost

(3)Port:8080(這裏宏哥搭建的默認端口8080,你也可以在Tomcat的配置文件修改這個端口)

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

擁有後台管理系統的網站,將擁有強大的資料管理與更新功能,幫助您隨時新增網站的內容並節省網站開發的成本。

5.選中線程組,添加一個http請求命名為:Login。如下圖所示:

注意:敲腦殼,敲黑板啦!!!宏哥本地搭建的Jenkins應用程序,那麼Login請求值,我們查看抓到登錄請求包(2.2.1)就很清楚了,這裏請求值填寫如下:

(1)protocol(協議:http or https):目前這個是本地搭建的http協議,所以這裏填寫Protocol:http

(2)測試地址為:本地搭建,不用啰嗦大家都知道了,Sever Name or IP:localhost

(3)Port:8080(這裏宏哥搭建的默認端口8080,你也可以在Tomcat的配置文件修改這個端口)

(4)Method:是那種類型的請求就選擇那種,這裏選擇post

(5)Path:登錄的請求路徑

(6)Content Encoding:編碼宏哥這裏沒有填寫,如果出現亂碼,你可以填寫utf-8和Gb2312試一下,即可。

6.選中線程組,添加一個cookie管理器,用來管理登錄后的cookie。如下圖所示:

注意:敲腦殼,敲黑板啦!!!cookie的添加一個值,這個也可以在抓包登陸請求中header查看到,這裏宏哥就不細說了。

(1)Name:JSESSIONID

(2)Value:一串数字和字母

(3)Domain:localhost

7.選中線程組,添加一個結果樹,命名為:Check Login Results,監聽登錄是否成功。如下圖所示:

8.選中線程組,添加一個http請求命名為:Delete Item。如下圖所示:

注意:敲腦殼,敲黑板啦!!!宏哥本地搭建的Jenkins應用程序,那麼Delete請求值,我們查看抓到刪除請求包(2.2.1)就很清楚了,這裏請求值填寫如下:

(1)protocol(協議:http or https):目前這個是本地搭建的http協議,所以這裏填寫Protocol:http

(2)測試地址為:本地搭建,不用啰嗦大家都知道了,Sever Name or IP:localhost

(3)Port:8080(這裏宏哥搭建的默認端口8080,你也可以在Tomcat的配置文件修改這個端口)

(4)Method:是那種類型的請求就選擇那種,這裏選擇post

(5)Path:刪除的請求路徑

(6)Content Encoding:編碼宏哥這裏沒有填寫,如果出現亂碼,你可以填寫utf-8和Gb2312試一下,即可。

9.選中線程組,添加一個結果樹,命名為:Check Delete Results,監聽刪除job是否成功。如下圖所示:

2.3JMeter運行查看運行結果

2.3.1不需要登錄

1、點擊綠色的按鈕,運行Jmeter,如下圖所示:

 2、查看JMeter運行結果,一個請求的監聽結果都是綠色的,說明請求成功。如下圖所示:

 (1)查看閱讀是否成功,從結果看到博文內容,說明閱讀成功。如下圖所示:

2.3.2登錄

1、Jenkins的新建任務里有“北京-宏哥”,如下圖所示:

2、點擊綠色的按鈕,運行Jmeter,如下圖所示:

 3、查看JMeter運行結果,兩個請求的監聽結果都是綠色的,說明請求成功。如下圖所示:

(1)查看登錄是否成功,從結果看到“admin”和“註銷”,說明登錄成功。如下圖所示:

(2)可以看到登錄成功后的,任務中有“北京-宏哥”。如下圖所示:

(3)查看刪除是否成功,從結果中沒有看到“北京-宏哥”,說明刪除成功。如下圖所示:

4、查看Jenkins的新建任務,沒有看到“北京-宏哥”,說明刪除成功了,如下圖所示:

3.制定高級Web測試計劃

在本小節中,紅兒將介紹一下如何創建高級 測試計劃來測試網站。

有關基本測試計劃的示例,請參閱構建Web測試計劃

3.1使用URL重寫處理用戶會話

如果您的Web應用程序使用URL重寫而不是Cookie來保存會話信息,則您需要做一些額外的工作來測試您的站點。

為了正確響應URL重寫,JMeter需要解析從服務器接收的HTML並檢索唯一的會話ID。使用適當的HTTP URL重寫修飾符 可以完成此操作。只需將您的會話ID參數的名稱輸入到修飾符中,它將找到它並將其添加到每個請求中。如果請求已經有一個值,它將被替換。如果是“緩存會話ID?” 如果選中,則將保存最後找到的會話ID,如果先前的HTTP示例不包含會話ID,則將使用該ID。

URL重寫示例

下載此示例在圖1中显示了使用URL重寫的測試計劃。請注意,URL Re-writing修飾符已添加到SimpleController中,從而確保它只會影響該SimpleController下的請求。

圖1-測試樹

在圖2中,我們看到URL重寫修飾符GUI,它只有一個字段供用戶指定會話ID參數的名稱。還有一個複選框,用於指示會話ID應該是路徑的一部分(用“;”分隔),而不是請求參數。

圖2-請求參數

3.2使用標題管理器

HTTP頭管理器可以讓你定製什麼樣的信息JMeter的HTTP請求頭髮送。此標頭包含“用戶代理”,“編譯指示”,“推薦人”等屬性。

該HTTP頭管理器,像HTTP Cookie管理器,可能應該在線程組級別添加,除非出於某種原因,您希望為不同的指定不同的頁眉HTTP請求在您的測試對象。

4.小結

4.1登錄和刪除前三個參數空白

1.細心地小夥伴或者童鞋們會從截圖中發現宏哥的登錄和刪除的前三個參數都是空白的,什麼也沒有填寫,那是因為前邊的HTTP默認請求,所以這裏不用填寫,好處就從這裏就看出來了,目前只是列舉了兩個請求,如果成百上千的請求是不是效果就更明顯了。

 

   好了,今天有關創建網絡計劃實戰和創建高級Web測試計劃就分享到這裏。灰常感謝您閱讀到這裏,如果您覺得不錯,就幫忙點個推薦唄。

您的肯定就是我進步的動力。如果你感覺還不錯,就請鼓勵一下吧!記得隨手點波  推薦  不要忘記哦!!!

別忘了點 推薦 留下您來過的痕迹

 

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

擁有後台管理系統的網站,將擁有強大的資料管理與更新功能,幫助您隨時新增網站的內容並節省網站開發的成本。

Redis詳解(十一)—— 過期刪除策略和內存淘汰策略_網頁設計公司

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

當全世界的人們隨著網路時代而改變向上時您還停留在『網站美醜不重要』的舊有思維嗎?機會是留給努力改變現況的人們,別再浪費一分一秒可以接觸商機的寶貴時間!

  在介紹這篇文章之前,我們先來看如下幾個問題:

  ①、如何設置Redis鍵的過期時間?

  ②、設置完一個鍵的過期時間后,到了這個時間,這個鍵還能獲取到么?假如獲取不到那這個鍵還佔據着內存嗎?

  ③、如何設置Redis的內存大小?當內存滿了之後,Redis有哪些內存淘汰策略?我們又該如何選擇?

  如果上面的幾個問題你都懂,那麼下面的內容你就不用看了;如果你不是很懂,那就帶着這些問題往下看。

1、設置Redis鍵過期時間

  Redis提供了四個命令來設置過期時間(生存時間)。

  ①、EXPIRE <key> <ttl> :表示將鍵 key 的生存時間設置為 ttl 秒。

  ②、PEXPIRE <key> <ttl> :表示將鍵 key 的生存時間設置為 ttl 毫秒。

  ③、EXPIREAT <key> <timestamp> :表示將鍵 key 的生存時間設置為 timestamp 所指定的秒數時間戳。

  ④、PEXPIREAT <key> <timestamp> :表示將鍵 key 的生存時間設置為 timestamp 所指定的毫秒數時間戳。

  PS:在Redis內部實現中,前面三個設置過期時間的命令最後都會轉換成最後一個PEXPIREAT 命令來完成。

  另外補充兩個知識點:

  一、移除鍵的過期時間

  PERSIST <key> :表示將key的過期時間移除。

  二、返回鍵的剩餘生存時間

  TTL <key> :以秒的單位返回鍵 key 的剩餘生存時間。

  PTTL <key> :以毫秒的單位返回鍵 key 的剩餘生存時間。

2、Redis過期時間的判定

  在Redis內部,每當我們設置一個鍵的過期時間時,Redis就會將該鍵帶上過期時間存放到一個過期字典中。當我們查詢一個鍵時,Redis便首先檢查該鍵是否存在過期字典中,如果存在,那就獲取其過期時間。然後將過期時間和當前系統時間進行比對,比系統時間大,那就沒有過期;反之判定該鍵過期。

3、過期刪除策略

  通常刪除某個key,我們有如下三種方式進行處理。

①、定時刪除

  在設置某個key 的過期時間同時,我們創建一個定時器,讓定時器在該過期時間到來時,立即執行對其進行刪除的操作。

  優點:定時刪除對內存是最友好的,能夠保存內存的key一旦過期就能立即從內存中刪除。

  缺點:對CPU最不友好,在過期鍵比較多的時候,刪除過期鍵會佔用一部分 CPU 時間,對服務器的響應時間和吞吐量造成影響。

②、惰性刪除

  設置該key 過期時間后,我們不去管它,當需要該key時,我們在檢查其是否過期,如果過期,我們就刪掉它,反之返回該key。

  優點:對 CPU友好,我們只會在使用該鍵時才會進行過期檢查,對於很多用不到的key不用浪費時間進行過期檢查。

  缺點:對內存不友好,如果一個鍵已經過期,但是一直沒有使用,那麼該鍵就會一直存在內存中,如果數據庫中有很多這種使用不到的過期鍵,這些鍵便永遠不會被刪除,內存永遠不會釋放。從而造成內存泄漏。

③、定期刪除

  每隔一段時間,我們就對一些key進行檢查,刪除裏面過期的key。

  優點:可以通過限制刪除操作執行的時長和頻率來減少刪除操作對 CPU 的影響。另外定期刪除,也能有效釋放過期鍵佔用的內存。

  缺點:難以確定刪除操作執行的時長和頻率。

※想知道最厲害的網頁設計公司嚨底家"!

RWD(響應式網頁設計)是透過瀏覽器的解析度來判斷要給使用者看到的樣貌

     如果執行的太頻繁,定期刪除策略變得和定時刪除策略一樣,對CPU不友好。

     如果執行的太少,那又和惰性刪除一樣了,過期鍵佔用的內存不會及時得到釋放。

     另外最重要的是,在獲取某個鍵時,如果某個鍵的過期時間已經到了,但是還沒執行定期刪除,那麼就會返回這個鍵的值,這是業務不能忍受的錯誤。

4、Redis過期刪除策略

  前面討論了刪除過期鍵的三種策略,發現單一使用某一策略都不能滿足實際需求,聰明的你可能想到了,既然單一策略不能滿足,那就組合來使用吧。

  沒錯,Redis的過期刪除策略就是:惰性刪除和定期刪除兩種策略配合使用。

  惰性刪除:Redis的惰性刪除策略由 db.c/expireIfNeeded 函數實現,所有鍵讀寫命令執行之前都會調用 expireIfNeeded 函數對其進行檢查,如果過期,則刪除該鍵,然後執行鍵不存在的操作;未過期則不作操作,繼續執行原有的命令。

  定期刪除:由redis.c/activeExpireCycle 函數實現,函數以一定的頻率運行,每次運行時,都從一定數量的數據庫中取出一定數量的隨機鍵進行檢查,並刪除其中的過期鍵。

  注意:並不是一次運行就檢查所有的庫,所有的鍵,而是隨機檢查一定數量的鍵。

  定期刪除函數的運行頻率,在Redis2.6版本中,規定每秒運行10次,大概100ms運行一次。在Redis2.8版本后,可以通過修改配置文件redis.conf 的 hz 選項來調整這個次數。

  

 

  看上面對這個參數的解釋,建議不要將這個值設置超過 100,否則會對CPU造成比較大的壓力。

  我們看到,通過過期刪除策略,對於某些永遠使用不到的鍵,並且多次定期刪除也沒選定到並刪除,那麼這些鍵同樣會一直駐留在內存中,又或者在Redis中存入了大量的鍵,這些操作可能會導致Redis內存不夠用,這時候就需要Redis的內存淘汰策略了。

5、內存淘汰策略

①、設置Redis最大內存

  在配置文件redis.conf 中,可以通過參數 maxmemory <bytes> 來設定最大內存:

  

  不設定該參數默認是無限制的,但是通常會設定其為物理內存的四分之三。(這裡有個疑惑:為啥作者不考慮將此參數設定為百分比呢?)

②、設置內存淘汰方式

  當現有內存大於 maxmemory 時,便會觸發redis主動淘汰內存方式,通過設置 maxmemory-policy ,有如下幾種淘汰方式:

  1)volatile-lru   利用LRU算法移除設置過過期時間的key (LRU:最近使用 Least Recently Used ) 。

  2)allkeys-lru   利用LRU算法移除任何key (和上一個相比,刪除的key包括設置過期時間和不設置過期時間的)。通常使用該方式

  3)volatile-random 移除設置過過期時間的隨機key 。

  4)allkeys-random  無差別的隨機移除。

  5)volatile-ttl   移除即將過期的key(minor TTL) 

  6)noeviction 不移除任何key,只是返回一個寫錯誤 ,默認選項,一般不會選用。

  在redis.conf 配置文件中,可以設置淘汰方式:

  

6、總結

  通過上面的介紹,相信大家對Redis的過期數據刪除策略和內存淘汰策略有一定的了解了。這裏總結一下:

  Redis過期刪除策略是採用惰性刪除和定期刪除這兩種方式組合進行的,惰性刪除能夠保證過期的數據我們在獲取時一定獲取不到,而定期刪除設置合適的頻率,則可以保證無效的數據及時得到釋放,而不會一直佔用內存數據。

  但是我們說Redis是部署在物理機上的,內存不可能無限擴充的,當內存達到我們設定的界限后,便自動觸發Redis內存淘汰策略,而具體的策略方式要根據實際業務情況進行選取。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

透過資料庫的網站架設建置,建立公司的形象或購物系統,並提供最人性化的使用介面,讓使用者能即時接收到相關的資訊

武漢市發熱門診就診高峰全天超1.5萬人_租車

※Google地圖已可更新顯示潭子電動車充電站設置地點!!

日本、大陸,發現這些先進的國家已經早就讓電動車優先上路,而且先進國家空氣品質相當好,電動車節能減碳可以減少空污

新華社武漢1月27日電(記者王作葵、喻珮)武漢市發熱門診就診人數增加,過去幾天的高峰時段,一天就診人數超過1.5萬人,全市發熱門診超負荷運轉。這是武漢市委書記馬國強27日晚在湖北新型冠狀病毒感染的肺炎疫情防控工作例行新聞發布會上說的。

馬國強說,往年同期,武漢市發熱門診日均就診人數在3000例左右。疫情發生以來,發熱門診就診人數逐日增多,高峰時段超過了1.5萬人。儘管發熱門診超負荷運轉,前期一些地方還是出現大量人員排隊的現象。

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

有別於一般網頁架設公司,除了模組化的架站軟體,我們的營業主軸還包含:資料庫程式開發、網站建置、網頁設計、電子商務專案開發、系統整合、APP設計建置、專業網路行銷。

“武漢市全市現有62家醫院設置發熱門診,但是由於其分佈不同、知名度不同,大家普遍希望到大醫院、有名的醫院去就診。”馬國強說,前期出現的發熱門診排長隊情況現已有所緩解。

湖北省醫療救治組專家、湖北省人民醫院呼吸科教授胡克說,由於前期診斷的新型冠狀病毒感染的肺炎病例少,出院的病例相對也較少。隨着後期診斷和治療跟進,出院病例數將逐步增加。

他介紹,病毒性肺炎的治療周期在2到3周。為了確保新型冠狀病毒感染的肺炎患者在出院后不具有傳染性,需要進行相應的檢測。要求體溫恢復正常3天以上,呼吸道癥狀明顯好轉,肺部影像學显示炎症明顯吸收,連續2次呼吸道病原核酸檢測陰性,且採樣間隔時間至少在1天以上。符合這些要求才可以解除隔離出院。

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

※超省錢租車方案

商務出差、學生出遊、旅遊渡假、臨時用車!GO 神州租賃有限公司!合法經營、合法連鎖、合法租賃小客車!

春節假期第四天全國主要道路交通安全順暢_包裝設計

※產品缺大量曝光嗎?你需要的是一流包裝設計!

窩窩觸角包含自媒體、自有平台及其他國家營銷業務等,多角化經營並具有國際觀的永續理念。

新華社北京1月27日電 公安部交管局27日發布信息,春節假期第四天,各主要高速公路、國省道幹線公路交通安全順暢,根據全國35條高速公路200個重要通道監測節點流量監測情況,交通總流量與去年同期相比下降39.9%。截至17時,未發生長時間長距離交通擁堵,未接報一次死亡5人以上較大交通事故。

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

上新台中搬家公司提供您一套專業有效率且人性化的辦公室搬遷、公司行號搬家及工廠遷廠的搬家服務

全國公安交管部門根據公安部統一部署,在當地黨委政府和公安機關的統一指揮下,主動擔當、积極作為,統籌春節假日交通安保和交通應急管理,會同和配合有關部門嚴密重點路段管控、嚴密重點部位防護、嚴密重點車輛查控,全力投入疫情防控工作,全力保障道路交通安全暢通。據統計,各地公安交管部門共出動警力18萬餘人次,出動警車7萬餘輛次,啟動交警執法站4100餘個,設立臨時執勤點1.2萬餘個。

根據中央氣象台預報,27日至28日,西南部局地有大雪或暴雪。27日夜間至28日早晨,湖北東部、湖南北部、江西東北部、山東中部、江蘇北部等地部分地區將有大霧天氣,局部有濃霧或強濃霧。公安部交管局提示廣大駕駛人朋友:霧天行車要打開霧燈,控制車速、保持安全車距;在冰雪路面行車時,要做到“緩加油、輕減速、慢轉彎”;請牢記“安全帶——生命帶”,駕車一定系好安全帶,莫忘為兒童選用適合其年齡、體重的兒童安全座椅。特別是請按照各地疫情防控工作的要求,盡量減少交通出行。

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網動廣告出品的網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上她。

山西新增新型冠狀病毒肺炎7例 累計確診20例_台中搬家

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

台中搬家公司推薦超過30年經驗,首選台中大展搬家

中新網1月28日電 據山西衛健委網站消息,2020年1月27日0時至24時,山西省報告新型冠狀病毒感染的肺炎新增確診病例7例,新增重症病例2例。新增確診的病例中,晉中市3例、呂梁市2例、太原市和運城市各1例;新增重症病例中,晉中市1例,呂梁市1例。

台中搬家公司費用怎麼算?

擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司

截至1月27日24時,山西省9個市累計報告新型冠狀病毒感染的肺炎確診病例20例,重症病例2例。其中晉中市5例、運城市3例、太原市3例、呂梁市3例、朔州市2例、大同市1例、長治市1例、陽泉市1例、臨汾市1例;重症病例中,晉中市1例,呂梁市1例。

目前追蹤到密切接觸者346人,已解除醫學觀察54人,1人診斷為確診病例。

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

台中搬家公司推薦超過30年經驗,首選台中大展搬家

北京對發往河北公交線路採取暫停運營措施_台中搬家公司

台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!

還在煩惱搬家費用要多少哪?台中大展搬家線上試算搬家費用,從此不再擔心「物品怎麼計費」、「多少車才能裝完」

中新網1月28日電 據北京公交集團官方微博消息,為配合河北省疫情防控需要,應河北省三河市、涿州市等15個屬地政府部門的要求,從1月28日起,北京市公交集團運營的28條跨河北省點到點直達線路,採取暫停運營措施。

9條在北京市域內設站點的線路,採取北京市域內區間運營措施。後續北京公交集團將與河北省相關市縣政府交通管理部門保持密切溝通,並做好隨時恢復開通運營的準備。

※推薦台中搬家公司優質服務,可到府估價

台中搬鋼琴,台中金庫搬運,中部廢棄物處理,南投縣搬家公司,好幫手搬家,西屯區搬家

圖片來源:北京公交集團官方微博

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!

還在煩惱搬家費用要多少哪?台中大展搬家線上試算搬家費用,從此不再擔心「物品怎麼計費」、「多少車才能裝完」

WWDC2022登場?下代Mac Pro規格曝光 最高內建64核ARM處理器_網頁設計

※推薦評價好的iphone維修中心

擁有專業的維修技術團隊,同時聘請資深iphone手機維修專家,現場說明手機問題,快速修理,沒修好不收錢

就在蘋果分手Intel,推出首款專為Mac設計的M1晶片,取得巨大的成功之時。蘋果爆料大神LeaksApplePro就在推特上表示,蘋果目前正在著手研發下一代的Mac Pro,新一代的Mac Pro預計在WWDC 2022正式問世,將會內建16、32、64核處理器。

根據蘋果官網資料顯示,目前Mac Pro最高可以搭載Intel Xeon W 2.5GHz 28核心處理器,記憶體最高可安裝1.5TB(12條128GB DIMM)、儲存裝置為8TB SSD,而顯示部分最高可採用兩張Radeon Pro Vega II Duo 32GB顯示卡。

而下一代的Mac Pro規格,根據爆料大神LeaksApplePro的內容,除了會在 WWDC 2022公布之外,處理器部分會有16、32、64核三種處理器,記憶體則是維持原有的最高可安裝至 1.5TB,但最高儲存空間則翻倍成為16TB SSD。

台北網頁設計公司這麼多該如何選擇?

網動是一群專業、熱情、向前行的工作團隊,我們擁有靈活的組織與溝通的能力,能傾聽客戶聲音,激發創意的火花,呈現完美的作品

雖然顯示卡部分並沒有透漏,但根據先前《彭博社》的報導指出,蘋果正在開發128核心GPU所組成的SoC,希望能藉此擺脫對Intel處理器與AMD顯示卡的依賴。除此之外,蘋果另外還會推出由8、12、16核心 CPU,配合16、32、64核心GPU,來組成各種SoC產品進行販售,而《彭博社》相信128核心GPU所組成的SoC將會優先使用在蘋果的頂級電腦機種Mac Pro上面,但其餘產品會先在2021年的MacBook Pro上登場。

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

網頁設計最專業,超強功能平台可客製化

窩窩以「數位行銷」「品牌經營」「網站與應用程式」「印刷品設計」等四大主軸,為每一位客戶客製建立行銷脈絡及洞燭市場先機。

小米 POCO 官方 Facebook 粉專成立、官網上線,即將以 POCO 品牌「重返」台灣市場_貨運

※評比南投搬家公司費用收費行情懶人包大公開

搬家價格與搬家費用透明合理,不亂收費。本公司提供下列三種搬家計費方案,由資深專業組長到府估價,替客戶量身規劃選擇最經濟節省的計費方式

 之所以說 POCO 即將「重返」台灣市場,也是因為這已經不是 POCO 第一次有產品在台灣推出。回顧 2018 年,當時還是小米旗下品牌的 POCOPHONE(POCO)在台灣推出萬元價位的旗艦手機 POCOPHONE F1 ,不僅當年成為許多追求性價比旗艦手機的消費者的首選之一,該款手機也獲得 MKBHD 評選為 2018 年最佳平價手機。然而,即便在那之後 POCO 仍有在印度推出新機,不過在台灣就沒有再推出新產品。

▲圖片來源:POCO Taiwan(Facebook)

小米 POCO 官方 Facebook 粉專成立、官網上線,即將以 POCO 品牌「重返」台灣市場

2020 年初, POCO 在印度與小米拆分、成為獨立的品牌後,在去年 11 月底也宣布 POCO 全球成為獨立品牌並成為 POCO Global 。稍早小米台灣 Xiaomi Taiwan 粉絲專頁分享了 POCO Taiwan 的粉絲專頁開張,暗示著 POCO 即將「重返」台灣市場。

POCO Taiwan 粉絲專頁在近期才剛成立:

▲圖片來源:POCO Taiwan(Facebook)

今(4)日稍早, POCO Taiwan 也張貼第一則貼文:

▲圖片來源:POCO Taiwan(Facebook)

檢視 POCO Taiwan 粉絲專頁是在 2020 年 12 月 24 日成立,並於 12 月 30 日與全球 POCO 全球的粉絲專頁進行合併:

▲圖片來源:POCO Taiwan(Facebook)

除了 Facebook 粉絲專頁,筆者稍早也查到了 POCO Taiwan 獨立的官方網站也已經悄悄上線,不再像當年 POCOPHONE F1 是小米台灣官網內的一款機型。
雖然,目前尚未公開任何關於 POCO 的消息、銷售的產品、會員制度也尚未開放註冊,不過種種跡象也很明顯代表接下來 POCO 將會以獨立品牌的方式回歸台灣市場。

▲圖片來源:POCO Taiwan (官網)

在購買管道部分,從 POCO Taiwan 官網可以看到線上官方線上合作通路有小米台灣,而其他通路則有小米之家、小米專賣店、PChome24h 購物以及聯強國際。

▲圖片來源:POCO Taiwan (官網)

※回頭車貨運收費標準

宇安交通關係企業,自成立迄今,即秉持著「以誠待人」、「以實處事」的企業信念

自從 POCO 成為獨立品牌至今陸續推出包括 POCO F2 Pro、 POCO X2、POCO X3 NFC 、 POCO M2 Pro 以及 POCO M3 等多款手機。
想必大家最關心的還是回歸台灣市場的 POCO 手機會是哪一款?日前有消息指出 POCO M3 可能會最快在台灣上市,這款擁有 6000mAh 大電量中階手機搭載高通 Snapdragon 662 處理器、配備 6.53 吋 FHD+ 水滴全螢幕、 4800 萬像素三鏡頭主相機,傳聞預計將引進 4GB+64GB 與 4GB+128GB 兩個版本,至於確切的消息還是得靜候台灣官方公佈為準。

▲圖片來源:POCO Global (官網)

去年 POCO 推出搭載高通 Snapdragon 865 處理器的 F2 Pro 旗艦手機,其實就是 Redmi K30 Pro 針對國際市場的更名版本機型。日前,我們也曾報導過 POCO 印度預告將在近期推出更平價的 POCO F2 ,從目前洩漏的消息傳聞 POCO F2 搭載和 POCO X3 NFC 相同的高通 S732G 處理器、120Hz 更新率 AMOLED 顯示螢幕、四鏡頭主相機,不過電池容量較小僅有 4250mAh 電池容量,確切規格仍得等待 POCO 官方正式發佈為準。

POCO Taiwan:
Facebook 粉絲專頁(點我前往)|官方網站(點我前往)

延伸閱讀:
realme V15 真機曝光:6400 萬像素三鏡頭主相機長續航中階新機,將於 1 月 7 日發表

小米有品推出 Lydsto 手持吸塵打氣機,眾籌價約 860 元

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

※智慧手機時代的來臨,RWD網頁設計為架站首選

網動結合了許多網際網路業界的菁英共同研發簡單易操作的架站工具,及時性的更新,為客戶創造出更多的網路商機。

紫米 ZMI 無線充車載支架(自動版)通過 NCC 認證,近期將在台開賣_網頁設計公司

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

節能減碳愛地球是景泰電動車的理念,是創立景泰電動車行的初衷,滿意態度更是服務客戶的最高品質,我們的成長來自於你的推薦。

對於時時呵護手機,或者注重車室整體質感有相當要求的車主來說,即便只是選購款車載支架也是需要好好慎選一番才行。去年八月初,小米生態鏈企業 ZMI(紫米)推出了一款支援自動夾緊、 採用 Alcantara 材質表面的高質感無線車載支架,最近它也悄悄由紫米授權經銷 Kamera 佳美能科技申請通過 NCC 認證,未來也將在台灣開賣。

▲圖片來源:ZMI 紫米

紫米 ZMI 無線充車載支架(自動版)通過 NCC 認證,近期將在台開賣

上週,在 NCC 認證通過的資料庫中出現了一款 ZMI 型號 WCJ11 的無線車充設備,經比對附件外觀和產品型號後確認它就是去年八月初在中國率先發表的「ZMI 無線車充車在支架自動版」,申請的廠商正是紫米在台灣的授權經銷 Kamera 佳美能科技。
即便這款產品可能在些網拍平台有其他人購入販售,但建議如果對這款產品有興趣的讀者,為了產品的品質和售後服務,還是選購未來 Kamera 的公司貨才有保障。

▲圖片來源:NCC

ZMI 車載無線充車載支架(自動版),顧名思義就是他支持自動夾緊功能,藉由內建紅外線感應器和馬達,在手機靠近時兩側的夾臂可自動展開、鎖緊,讓手機可輕鬆放入進行充電。要取下手機時,輕觸側面按鍵即可單手取出手機。
另外,這款車載支架的夾臂張開的寬度可達 81.5mm ,理論上來說絕大多數的智慧型手機都能適用,但像是目前市面最常見的「大手機」 iPhone 12 Pro Max 裸機寬度為 78.1mm ,若要使用這款產品則切記不要使用過於寬厚的手機保護殼。

▲圖片來源:ZMI 紫米

多數車載支架在與手機背面接觸的表面都採用塑料材質,如果相當保護手機、害怕刮傷的用戶難免會擔心長久下來讓手機產生刮痕。而 ZMI 無線充車載支架(自動版)採用 Alcantara  的超纖面料作為充電面板,柔軟、耐磨、手感好的特性,也常在進口豪華車、超跑內裝常見到這類材質。
車載支架固定採用三角結構能穩固防止路面顛簸,而自動鎖緊也能加強手機牢牢固定在車載支架上進行無線充電,無線充電有效感應距離達 4mm ,即便使用保護殼也能進行充電。

▲圖片來源:ZMI 紫米

雖然這款車載支架最高僅支持到 10W 的無線快充,不過撇除小米、華為一些特殊機型,其實對於目前普遍支持 Qi 無線充電的主流手機來說, 10W 無線充電已經綽綽有餘,甚至許多機型只能支持到 7.5W 快充。
搭配的定製車充採用雙 USB-A 接口輸出,單口輸出功率可達 18W 、雙口同時輸出可達 36W ,能一次滿足車內駕駛和乘客兩位的同時充電需求。

▲圖片來源:ZMI 紫米

其他小細節部分, ZMI 無線充車載支架(自動版)夾臂內側採用矽膠墊能增添防滑、保護的作用。除了安裝在冷氣出風口的夾具固定,也標配黏貼底座以便一些希望能將支架黏貼固定在車內的族群。然而,這款車載支架還是能使用有線充電的,因為在支架採用 U 型開口,就是方便用戶使用充電線進行有線充電使用。

▲圖片來源:ZMI 紫米

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

搬家費用:依消費者運送距離、搬運樓層、有無電梯、步行距離、特殊地形、超重物品等計價因素後,評估每車次單

消息來源:NCC

延伸閱讀:
小米 POCO 官方 Facebook 粉專成立、官網上線,即將以 POCO 品牌「重返」台灣市場

小米有品推出 Lydsto 手持吸塵打氣機,眾籌價約 860 元

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

透過選單樣式的調整、圖片的縮放比例、文字的放大及段落的排版對應來給使用者最佳的瀏覽體驗,所以不用擔心有手機版網站兩個後台的問題,而視覺效果也是透過我們前端設計師優秀的空間比例設計,不會因為畫面變大變小而影響到整體視覺的美感。