Faits :
A.
Par décisions des 26 juillet 1999 et 19 juin 2000, l'Office de l'assurance-invalidité du canton de Fribourg (ci-après: l'office AI) a mis A._, né en 1961, au bénéfice d'une demi-rente de l'assurance-invalidité du 1er août 1995 au 31 mars 1999, puis d'une rente entière à compter du 1er avril 1999.
Dans le cadre d'une révision d'office de la rente initiée en octobre 2011, l'office AI a mandaté le docteur B._, spécialiste en psychiatrie et psychothérapie, qui a déposé son rapport le 3 février 2014. L'office AI a réduit la rente entière à un quart de rente par décision du 15 mai 2014. Celle-ci a été annulée par le Tribunal cantonal du canton de Fribourg, Cour des assurances sociales, qui a renvoyé le dossier à l'administration pour instruction complémentaire et, éventuellement, mise en place des mesures nécessaires à la réintégration de l'assuré dans le circuit économique (arrêt du 17 novembre 2015). L'office AI a confié un nouveau mandat d'expertise au docteur B._, qui a remis son rapport le 24 octobre 2017.
Le 10 novembre 2017, l'office AI a reconnu à l'assuré le droit à des mesures d'ordre professionnel dans le sens d'un réentraînement au travail. Le 4 octobre 2018, il a pris en charge un stage de préparation à une activité professionnelle d'une durée de trois mois auprès du Centre d'intégration professionnelle de U._, qui a été accompli du 15 octobre 2018 au 27 janvier 2019. Par décision du 23 août 2019, l'office AI a supprimé la rente entière dès le 1er octobre 2019.
B.
A._ a déféré cette décision au Tribunal cantonal du canton de Fribourg, Cour des assurances sociales, qui l'a débouté par arrêt du 17 août 2020.
C.
A._ interjette un recours en matière droit public contre ce jugement dont il demande l'annulation, en concluant principalement au maintien de la rente entière au-delà du 30 septembre 2019, subsidiairement au renvoi de la cause à l'office AI pour mise en oeuvre d'une mesure d'observation professionnelle puis, le cas échéant, de mesures destinées à l'aider à se réinsérer dans le monde du travail et, enfin, pour nouvelle décision.

Considérant en droit :
1.
Le recours en matière de droit public (au sens des <ref-law>) peut être formé pour violation du droit (circonscrit par les art. 95 et 96 LTF). Le Tribunal fédéral applique le droit d'office (<ref-law>). Il n'est limité ni par l'argumentation de la partie recourante ni par la motivation de l'autorité judiciaire précédente. Il statue sur la base des faits établis par celle-ci (<ref-law>) mais peut rectifier ou compléter d'office les lacunes ou les erreurs manifestes (<ref-law>). Il n'examine en principe que les griefs motivés (<ref-law>), en particulier s'ils concernent la violation des droits fondamentaux (<ref-law>), et ne peut aller au-delà des conclusions des parties (<ref-law>). Le recourant peut critiquer la constatation des faits, qui peuvent exercer une influence sur le sort du litige, uniquement s'ils ont été établis en violation du droit ou d'une façon manifestement inexacte (<ref-law>), notion qui correspond à celle d'arbitraire au sens de l'art. 9 Cst. (<ref-ruling> consid. 2).
En matière d'appréciation des preuves et d'établissement des faits, il y a arbitraire lorsque l'autorité n'a manifestement pas compris le sens et la portée d'un moyen de preuve, si elle ne prend pas en compte, sans raison sérieuse, un élément de preuve propre à modifier la décision ou lorsqu'elle tire des constatations insoutenables des éléments recueillis (<ref-ruling> consid. 4.1.2).
2.
Compte tenu des motifs et des conclusions du recours, le litige porte sur le maintien du droit à la rente entière d'invalidité au-delà du 30 septembre 2019, laquelle a été supprimée par l'intimé, par la voie de la révision au sens de l'<ref-law>, cette suppression ayant été confirmée par la juridiction cantonale.
Les premiers juges ont exposé de manière complète les règles applicables en l'espèce, notamment celles en matière de révision du droit à la rente (<ref-law>; <ref-ruling> consid. 5) et à la valeur probante des rapports médicaux (<ref-ruling> consid. 2.2.2; <ref-ruling> consid. 3).
3.
Les premiers juges ont constaté que c'est pour l'essentiel la problématique psychiatrique qui avait conduit l'office intimé à retenir un taux d'invalidité de 100 % dans la décision du 26 juillet 1999. Comparant la situation qui prévalait à cette époque avec les constatations du docteur B._ (rapport d'expertise du 24 octobre 2017), ils ont retenu que l'état de santé du recourant s'était amélioré sur un plan psychiatrique, et qu'il disposait d'une pleine capacité de travail sans perte de rendement. Quant au volet somatique, il n'avait que peu évolué, si bien que la capacité de travail demeurait entière dans une activité adaptée.
La juridiction cantonale a ensuite examiné la question des mesures d'ordre professionnel, car le recourant bénéficiait d'une rente depuis plus de 15 ans et était âgé de plus de 55 ans au moment de l'examen par les experts (cf. à ce sujet <ref-ruling> consid. 5; arrêt 9C_276/2020 du 18 décembre 2020 consid. 6 et les références). Dans ce contexte, elle a constaté que le recourant s'était d'abord opposé de facto à participer à de telles mesures; il avait ensuite refusé de suivre un atelier de recherche d'emploi, affirmant ne pas pouvoir se projeter dans une quelconque activité professionnelle ni travailler à plus de 50 %. L'échec de la mesure professionnelle n'était donc pas imputable principalement à l'état de santé, mais surtout à des facteurs extra-médicaux. Comme la reprise d'une activité professionnelle était exigible de la part du recourant et que la comparaison des revenus ne laissait apparaître aucune perte de gain, l'intimé avait cessé à juste titre de verser ses prestations.
4.
4.1. Dans un premier grief, le recourant se prévaut d'une constatation manifestement inexacte et incomplète des faits. D'une part, il conteste que son état de santé et sa capacité de travail se soient sensiblement améliorés depuis la décision de l'intimé du 26 juillet 1999. A son avis, les diagnostics posés par le docteur B._ en 2017 seraient identiques à ceux qui avaient été retenus en 1998 par le docteur C._, spécialiste en psychiatrie et psychothérapie, en raison desquels la rente aurait été allouée en 1999. On se trouverait ainsi en présence d'une appréciation différente d'un état de fait resté inchangé, de sorte que les conditions d'une révision au sens de l'<ref-law> ne seraient pas remplies.
4.2. Ainsi que les premiers juges l'ont constaté, dans sa décision du 26 juillet 1999, l'intimé avait arrêté le taux d'invalidité du recourant à 100 % en se fondant non pas sur les conclusions du docteur C._ qui avait attesté une capacité de travail de 60 % en raison d'une dysthymie (rapport du 12 septembre 1998), mais sur celles de la doctoresse D._, spécialiste en psychiatrie et psychothérapie; celle-ci avait retenu une incapacité totale de travail en raison notamment d'un état dépressif sévère, d'idées suicidaires et de certains équivalents d'allure plutôt pré-psychotique (rapport du 16 mars 1999). Contrairement à l'opinion du recourant, la révision de la rente ne repose donc pas sur une nouvelle appréciation, par le docteur B._, d'une situation restée inchangée. En effet, si l'expert a certes confirmé le diagnostic de dysthymie (F34.1) déjà posé par son confrère C._ en 1998, en précisant que cette affection n'avait pas d'incidence sur la capacité de travail, il n'a en revanche pas retenu les affections que la doctoresse D._ avait mises en évidence en 1999, en particulier l'état dépressif sévère (cf. rapport du 24 octobre 2017). L'autorité précédente n'a ainsi pas constaté les faits de manière manifestement inexacte et incomplète en suivant l'avis de l'expert pour admettre que l'état de santé psychique du recourant s'était amélioré.
5.
5.1. En second lieu, le recourant fait grief à l'instance précédente d'avoir arbitrairement retenu qu'il serait en mesure de valoriser sa capacité de travail médico-théorique. En admettant qu'il pouvait réintégrer par lui-même le marché du travail exclusivement sur la base des deux rapports d'expertise du docteur B._, les premiers juges auraient apprécié ces avis de façon manifestement insoutenable, car l'expert ne s'était en définitive pas prononcé sur cette question et n'avait pas indiqué qu'il disposait de capacités suffisantes lui permettant de se réadapter. De surcroît, l'instance précédente n'aurait pas tenu compte du rapport du Centre d'intégration professionnelle dont il ressortirait que la valorisation de sa capacité de travail était hors de sa portée. Il reproche à l'intimé de n'avoir pas mis préalablement en oeuvre des mesures d'observation professionnelle mais de s'être contenté d'organiser un stage de réentraînement au travail.
5.2. Les premiers juges ont constaté que le docteur B._ n'avait assorti la reprise d'une activité lucrative d'aucune condition, telle une mesure thérapeutique. On ne saurait dès lors leur reprocher d'avoir retenu l'exigibilité immédiate, du point de vue médical, de la mise en valeur de la capacité résiduelle de travail attestée par l'expert.
L'instance précédente a ensuite retenu qu'à la suite de la seconde expertise, le recourant avait été mis au bénéfice d'un "stage de préparation-orientation" auprès du Centre d'intégration professionnelle. Cette mesure avait cependant été un échec pour une raison qui n'avait pas été imputable à l'état de santé du recourant, mais avant tout à des facteurs extra-médicaux, clairement mis en évidence par le docteur B._ (notamment la conviction d'être invalide). Ces constatations ne sont pas sérieusement remises en cause dans le recours, dès lors que le recourant se limite à donner sa propre appréciation des conclusions du rapport de stage. A l'inverse de ce qu'il prétend, les responsables du Centre d'intégration professionnelle n'ont nullement exclu une mise en valeur de sa capacité de travail dans leur rapport du 28 janvier 2019. Ils ont fait état des attestations médicales présentées par l'assuré, tout en relevant qu'il avait été en mesure d'effectuer sans difficulté la plupart des travaux attribués.
Compte tenu des motifs qui ont empêché le recourant de suivre la mesure proposée conformément aux modalités prévues, qui relèvent de facteurs étrangers à l'invalidité, la juridiction cantonale était en droit de nier la nécessité de mesures de réadaptation supplémentaires (comp. arrêt 9C_752/2013 du 27 juin 2014 consid. 4.3.2).
5.3. Ensuite de ce qui précède, le recours est infondé.
6.
Le recourant, qui succombe, supportera les frais de la procédure (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 800 fr., sont mis à la charge du recourant.
3.
Le présent arrêt est communiqué aux parties, au Tribunal cantonal du canton de Fribourg, Cour des assurances sociales, et à l'Office fédéral des assurances sociales.
Lucerne, le 31 août 2021
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
Le Président : Parrino
Le Greffier : Berthoud